diff --git a/apidocs/2.0.1/allclasses-frame.html b/apidocs/2.0.1/allclasses-frame.html
new file mode 100644
index 0000000..26e7ac2
--- /dev/null
+++ b/apidocs/2.0.1/allclasses-frame.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<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/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/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/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">DiscontiguousIterator</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/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset" target="classFrame">NullStorelessUnivariateStatistic</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>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/allclasses-noframe.html b/apidocs/2.0.1/allclasses-noframe.html
new file mode 100644
index 0000000..8cdde63
--- /dev/null
+++ b/apidocs/2.0.1/allclasses-noframe.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<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/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/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/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</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>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/constant-values.html b/apidocs/2.0.1/constant-values.html
new file mode 100644
index 0000000..f31875e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/deprecated-list.html b/apidocs/2.0.1/deprecated-list.html
new file mode 100644
index 0000000..30754ec
--- /dev/null
+++ b/apidocs/2.0.1/deprecated-list.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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="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/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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="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/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="rowColor">
+<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="altColor">
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/help-doc.html b/apidocs/2.0.1/help-doc.html
new file mode 100644
index 0000000..cd7fd61
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/index-all.html b/apidocs/2.0.1/index-all.html
new file mode 100644
index 0000000..b05072d
--- /dev/null
+++ b/apidocs/2.0.1/index-all.html
@@ -0,0 +1,9252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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>&nbsp;</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/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>&nbsp;</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">Append string representation of slice</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/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/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">Class to run over an iterator and visits positions where items in selection dataset are true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset)">BooleanIterator(IndexIterator, 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">Constructor for an iterator over the items of a boolean dataset that are
+ true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanIterator(IndexIterator, Dataset, boolean)</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">Constructor for an iterator over the items of a boolean dataset that match
+ given value</div>
+</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/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">Check that axis is in range [-rank,rank)</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/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/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/NullStorelessUnivariateStatistic.html#clear()">clear()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</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>&nbsp;</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>&nbsp;</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">Populate 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">Convert a string to 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">Convert from a set of integer arrays to 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">Convert to a slice array</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/NullStorelessUnivariateStatistic.html#copy()">copy()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</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(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">Extract blue colour channel</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,%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(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">Extract green colour channel</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">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(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">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/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 to given stop in steps of 1</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 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 to given stop in given steps</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">Extract red colour channel</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">Creating slice 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 slice 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">Create 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>&nbsp;</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><a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">DiscontiguousIterator</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 non-contiguous or fragmented datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DiscontiguousIterator.html#DiscontiguousIterator(int[],%20int[],%20int)">DiscontiguousIterator(int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the elements of a dataset that are
+ within the dimensions</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DiscontiguousIterator.html#DiscontiguousIterator(int[],%20int[],%20int,%20int)">DiscontiguousIterator(int[], int[], int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the elements of a dataset that are
+ within the dimensions</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/NullStorelessUnivariateStatistic.html#evaluate(double[])">evaluate(double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#evaluate(double[],%20int,%20int)">evaluate(double[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</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">Flip slice direction so 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">Flip slice direction in given dimension so 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">Flip slice direction in all dimensions so 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/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/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>&nbsp;</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/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>&nbsp;</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/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>&nbsp;</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/NullStorelessUnivariateStatistic.html#getN()">getN()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</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>&nbsp;</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>&nbsp;</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/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/BooleanIterator.html#getPos()">getPos()</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#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/DiscontiguousIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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>&nbsp;</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">Get position of n-th step in 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/dataset/NullStorelessUnivariateStatistic.html#getResult()">getResult()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</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/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/DiscontiguousIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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>&nbsp;</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>&nbsp;</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/StrideIterator.html#getShape()">getShape()</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/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/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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">Note stop values are clamped to -1 for <b>negative</b> steps</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/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/BooleanIterator.html#hasNext()">hasNext()</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/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/DiscontiguousIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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>&nbsp;</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/NullStorelessUnivariateStatistic.html#increment(double)">increment(double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#incrementAll(double[])">incrementAll(double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#incrementAll(double[],%20int,%20int)">incrementAll(double[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></dt>
+<dd>&nbsp;</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#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>&nbsp;</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>&nbsp;</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>&nbsp;</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/LazyMaths.html#LazyMaths()">LazyMaths()</a></span> - Constructor for 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/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 content</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/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/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/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>
+<dt><a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset"><span class="strong">NullStorelessUnivariateStatistic</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/NullStorelessUnivariateStatistic.html#NullStorelessUnivariateStatistic()">NullStorelessUnivariateStatistic()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</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/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/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/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/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>&nbsp;</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/BooleanIterator.html#reset()">reset()</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/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/DiscontiguousIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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>&nbsp;</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/AbstractDataset.html#setDirty()">setDirty()</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#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 stored 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">Set maximum value of 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>&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">Set start and end from implied number of steps.</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</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</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 starting position of 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 start (prefix with zeros if necessary)</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 step size of 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 stopping position of 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">Class to represent a slice through a single dimension of a multi-dimensional dataset.</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>&nbsp;</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">Default to starting at 0 with steps 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">Default to steps 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>&nbsp;</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">Class 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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Class to represent a slice through all dimensions of a multi-dimensional dataset.</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 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 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 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[],%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 ND slice parameters</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 ND slice parameters</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(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>&nbsp;</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>&nbsp;</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><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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/index.html b/apidocs/2.0.1/index.html
new file mode 100644
index 0000000..6f4e8b6
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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.0.1/org/eclipse/january/DatasetException.html b/apidocs/2.0.1/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..7f3738b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:27 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.0.1/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..9bf78ea
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:27 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/IMonitor.html b/apidocs/2.0.1/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..eeae0ca
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:27 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/INameable.html b/apidocs/2.0.1/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..87b8b38
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:27 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>INameable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/MetadataException.html b/apidocs/2.0.1/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..8eec6d5
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:27 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/class-use/DatasetException.html b/apidocs/2.0.1/org/eclipse/january/class-use/DatasetException.html
new file mode 100644
index 0000000..eaf0e39
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/class-use/DatasetException.html
@@ -0,0 +1,398 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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#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"><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="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/class-use/IMonitor.Stub.html b/apidocs/2.0.1/org/eclipse/january/class-use/IMonitor.Stub.html
new file mode 100644
index 0000000..3d44a02
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/class-use/IMonitor.html b/apidocs/2.0.1/org/eclipse/january/class-use/IMonitor.html
new file mode 100644
index 0000000..a71bd0c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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/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,%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">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="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">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="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.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/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">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.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">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/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">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>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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/class-use/INameable.html b/apidocs/2.0.1/org/eclipse/january/class-use/INameable.html
new file mode 100644
index 0000000..26ca7fc
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/class-use/MetadataException.html b/apidocs/2.0.1/org/eclipse/january/class-use/MetadataException.html
new file mode 100644
index 0000000..e1e29d3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..e99561d
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,2893 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractCompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.107">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>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">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.111">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.121">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.126">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.131">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.136">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.139">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.144">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.149">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.154">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.159">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.164">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.169">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.174">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.179">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.184">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.189">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.192">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.197">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.202">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.207">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.212">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.215">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.220">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.225">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.230">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.235">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.240">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.245">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.250">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.255">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.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/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.265">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.270">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.277">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.279">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.281">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.283">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.286">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.291">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.296">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.301">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.306">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.311">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.316">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.321">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.326">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.331">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.336">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.341">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.346">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.351">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.356">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.361">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.366">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.371">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.376">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.381">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.386">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.391">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.396">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.401">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.406">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.411">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.416">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.421">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.426">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.431">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.436">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.441">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.449">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.460">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.466">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.472">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.478">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.484">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.490">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.497">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.503">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.509">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.565">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.570">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.575">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.580">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.621">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.630">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.635">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.640">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.658">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.663">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.668">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..d997cac
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,3380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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">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/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#setDirty()">setDirty</a></strong>()</code>
+<div class="block">This method allows anything that dirties the dataset to clear stored values
+ so that the other methods can work correctly.</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#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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="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,%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/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="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.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>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="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()">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/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="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#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/AbstractDataset.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/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="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)">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/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="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#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/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><a href="../../../../org/eclipse/january/dataset/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="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#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/AbstractDataset.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/AbstractDataset.html#toString(boolean)">toString</a></strong>(boolean&nbsp;showData)</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#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/AbstractDataset.html#variance()">variance</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/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="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)">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"><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#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#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.1104">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.1105">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.305">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.318">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.366">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.375">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.380">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.385">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.393">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> - </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.404">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.436">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.441">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.446">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.464">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.479">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.495">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.500">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.506">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.511">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.516">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.521">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.526">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.531">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.541">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.546">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.581">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.694">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.699">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.704">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.709">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.714">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.733">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.746">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.772">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.787">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.814">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.834">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.839">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.853">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.898">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.906">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.922">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.944">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.967">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.971">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.1030">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.1049">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.1082">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>protected static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1093">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></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/AbstractDataset.html#line.1108">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.1113">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.1167">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.1174">getMaxLineLength</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>maximum line length for toString() method</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/AbstractDataset.html#line.1323">setDirty</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">Dataset</a></code></strong></div>
+<div class="block">This method allows anything that dirties the dataset to clear stored values
+ so that the other methods can work correctly.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code>&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="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.1328">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.1333">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.1338">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.1376">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.1381">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.1386">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.1404">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.1409">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.1415">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.1420">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.1425">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.1430">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.1435">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.1440">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.1445">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.1455">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.1470">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.1474">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.1492">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.1505">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.1513">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.1518">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.1523">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.1528">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.1533">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.1538">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.1543">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.1551">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.1565">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.1576">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.1581">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.1586">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.1591">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.1596">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.1604">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.1609">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.1617">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.1622">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.1627">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.1633">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.1638">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.1643">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.1648">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.1653">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.1658">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.1663">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.1668">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.1673">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.1678">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.1683">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.1688">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.1693">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.1698">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.1703">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.1708">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.1713">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.1721">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.1737">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.1764">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.1773">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.1782">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.1791">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.1800">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.1809">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.1818">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.1827">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.1835">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.1841">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.1869">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..19d87ac
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AggregateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.0.1/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..b21e7b7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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/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.84">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.92">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.99">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/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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..0138a5f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..42b644b
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDataset.html
@@ -0,0 +1,1265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:28 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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/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#setDirty()">setDirty</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#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.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/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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..e560d61
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,1970 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.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/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.177">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.182">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.223">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.238">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.243">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.250">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.265">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.270">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.275">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.280">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.285">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.290">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.304">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.310">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.317">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.329">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.337">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.346">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.354">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.359">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.364">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.369">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.374">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.379">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.384">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.389">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.394">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.399">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.404">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.409">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.414">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.419">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.424">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.429">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.434">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.439">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.444">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.449">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.454">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.459">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.464">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.469">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.474">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.479">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.484">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.489">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.494">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.499">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.504">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.509">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.514">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.519">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.524">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.529">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.534">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.544">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.554">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.565">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.575">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.580">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.585">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.590">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.595">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.605">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.629">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.634">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.651">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.663">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.675">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.703">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.730">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.769">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.809">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.828">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.859">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.875">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.891">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.896">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.901">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.906">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.911">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.916">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.921">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.926">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.931">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.936">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.941">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..43eb9c0
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/BooleanIterator.html
@@ -0,0 +1,358 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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/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="#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 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">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.18">BooleanIterator</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 iterator and visits positions where items in selection dataset are true</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/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset)">BooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that are
+ true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection,
+                              boolean&nbsp;value)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that match
+ given value</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/BooleanIterator.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/BooleanIterator.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/BooleanIterator.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="BooleanIterator(org.eclipse.january.dataset.IndexIterator, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BooleanIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.32">BooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that are
+ true</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>iter</code> - dataset iterator</dd><dd><code>selection</code> - boolean dataset</dd></dl>
+</li>
+</ul>
+<a name="BooleanIterator(org.eclipse.january.dataset.IndexIterator, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.44">BooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection,
+               boolean&nbsp;value)</pre>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that match
+ given value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>iter</code> - dataset iterator</dd><dd><code>selection</code> - boolean dataset</dd><dd><code>value</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/BooleanIterator.html#line.54">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/BooleanIterator.html#line.65">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/BooleanIterator.html#line.70">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/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/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/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="#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..ff69f07
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/BooleanIterator.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.69">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.74">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/BooleanIterator.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..660b331
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIteratorBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..09c72cf
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.122">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.185">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.192">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.197">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..9700929
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSelfIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..050a576
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.82">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.126">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.133">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.138">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..5110c42
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.210">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.222">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.257">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..3582bef
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.907">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.925">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.943">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.948">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.953">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.958">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.992">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.1027">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.1061">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.1112">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.1117">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.1168">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.1235">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.0.1/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..3871ed1
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CollectionStats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.0.1/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..87aa139
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons.Monotonicity (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.1561">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.1565">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.1569">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.1573">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.1577">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.1581">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.1585">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.1561">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.1561">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.0.1/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..31e243d
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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>&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#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>&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#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.877">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>
+<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="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.917">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.942">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>
+<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="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.986">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.999">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.1035">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.1050">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.1110">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.1125">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.1185">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.1200">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.1254">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.1289">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.1301">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.1348">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.1360">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.1407">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.1419">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.1430">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.1442">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.1504">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.1516">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.1593">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.1602">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.1689">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.1699">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..4fcca9f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:29 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.716">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.765">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.824">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.917">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.922">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.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>
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..d2f4ce7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:30 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.707">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.756">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.815">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.908">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.913">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.955">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..d06caf3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:30 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1371">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.1376">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.1381">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.1466">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.1551">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.1763">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.1768">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.1888">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.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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..2842ab8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:30 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..be0c7ef
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:30 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1378">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.1390">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.1403">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.1488">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.1573">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.1769">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.1781">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.1885">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.1986">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..9e5d066
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:30 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1378">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.1390">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.1403">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.1488">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.1573">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.1769">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.1781">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.1885">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.1986">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..dfd49e0
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundIntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1371">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.1376">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.1381">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.1466">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.1551">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.1763">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.1768">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.1888">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.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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..012934b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundLongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1371">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.1376">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.1381">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.1466">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.1551">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.1763">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.1768">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.1888">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.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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..abe7c49
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.249">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.270">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.275">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.300">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.343">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.372">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.389">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.407">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.412">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.419">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.434">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.450">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.457">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.467">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.472">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.477">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.494">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.510">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.516">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.521">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.526">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.531">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.536">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.546">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.556">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.566">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.576">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.586">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.596">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.606">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.616">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.626">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.636">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.646">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.656">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.666">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.676">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.686">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.696">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.706">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.716">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.726">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.736">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.746">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.756">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.766">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.776">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.783">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.788">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.793">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.798">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.803">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.808">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.813">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.818">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.823">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.832">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.847">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.853">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.858">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.863">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.868">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.882">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.895">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.909">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.922">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.935">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.963">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.978">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.1002">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.1010">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.1032">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.1054">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.1068">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.1118">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.1170">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.1250">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.1321">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.1348">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.1366">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.1371">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.1376">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.1381">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.1466">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.1551">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.1763">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.1768">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.1888">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.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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..9f42aaf
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..726fc12
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIteratorWithPosition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.86">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.91">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.100">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..248ab12
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..1cc5714
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..26120b8
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,845 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DTypeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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(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.408">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.417">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.439">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.449">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.491">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(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.518">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.545">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.576">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.607">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.682">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.756">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.830">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.904">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.978">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.1055">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.1086">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.1107">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.1129">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.0.1/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..fda5ae4
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataEvent (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.0.1/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..61110ca
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataListenerDelegate (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Dataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..c54591a
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,3596 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/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="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(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/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="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.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>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="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()">getString</a></strong>()</code>
+<div class="block">Get first item 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)">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/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="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#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/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="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#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</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#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</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#hasFloatingPointElements()">hasFloatingPointElements</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#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/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="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#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/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="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#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/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="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#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>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="rowColor">
+<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="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#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><a href="../../../../org/eclipse/january/dataset/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="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#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/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="altColor">
+<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="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/Dataset.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/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="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="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#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/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>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="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,%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/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="rowColor">
+<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="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#rootMeanSquare(int,%20boolean...)">rootMeanSquare</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#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/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="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,%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><a href="../../../../org/eclipse/january/dataset/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="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#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"><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>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 stored values
+ so that the other methods can work correctly.</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#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="rowColor">
+<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="altColor">
+<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="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.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"><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"><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/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="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#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="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()">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/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="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#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/Dataset.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/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="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)">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/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="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#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/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"><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"><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="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#toString(boolean)">toString</a></strong>(boolean&nbsp;showData)</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#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="rowColor">
+<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="altColor">
+<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="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)">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"><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 stored 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="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.457">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.468">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.478">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.487">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.497">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.506">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.518">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.527">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.537">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.549">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.562">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.570">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.578">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.586">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.594">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.602">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.610">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.618">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.625">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.632">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.640">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.647">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.654">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.662">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.669">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.676">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.684">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.691">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.698">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.706">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.713">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.720">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.728">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.735">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.742">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.750">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.757">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.764">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.772">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.779">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.786">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.794">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.801">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.808">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.816">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.823">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.830">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.838">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.845">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.853">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.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)</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.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,
+       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.875">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.884">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.887">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.890">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.893">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.896">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.899">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.902">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.905">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.908">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.911">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.927">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.935">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.943">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.953">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.962">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.967">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.973">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.978">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.984">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.992">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.1000">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.1008">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.1016">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.1024">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.1031">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.1038">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.1046">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.1055">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.1064">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.1075">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.1080">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.1085">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.1090">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.1100">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.1108">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.1116">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.1125">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.1133">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.1142">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.1149">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.1157">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.1164">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.1172">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.1179">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.1187">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.1194">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.1202">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.1210">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.1217">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.1244">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.1251">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.1261">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.1270">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.1281">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.1290">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.1302">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.1309">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.1317">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.0.1/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..24ae5cb
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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,%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"><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>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="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)">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="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,%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="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)">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="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,%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="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#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 <a href="../../../../org/eclipse/january/dataset/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="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#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="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#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="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)">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 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"><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 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"><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 to given stop in steps of 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/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 <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 to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - </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, 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.41">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 to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</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 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.57">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 to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - </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.96">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 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> - </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.113">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 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> - </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.162">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.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,
+                       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.198">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</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.218">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.235">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.253">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.377">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.413">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.429">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.448">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.468">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.483">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.496">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.545">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.563">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.607">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.624">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.636">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.651">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.662">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.675">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.712">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.767">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> - </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.803">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> - </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.829">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 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> - </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.842">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 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> - </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="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.856">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.871">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.883">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.895">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.908">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.918">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.930">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.940">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.952">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.962">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.974">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.984">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.998">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> - </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.1014">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> - </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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..de5290e
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,1716 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.30">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#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>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="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#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 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="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)">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 content</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.35">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.30">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.46">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.99">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.119">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.137">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.149">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.203">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.306">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.317">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.325">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.334">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</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.344">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="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.387">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.449">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.476">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.540">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.634">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.654">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.765">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.778">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.795">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.808">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.891">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.945">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 content</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="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.982">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.1107">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.1133">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.1190">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.1204">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.1277">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.1290">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.1343">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.1353">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.1402">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.1430">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.1442">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.1454">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.1471">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.1502">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.1517">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.1533">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.1580">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.1625">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.1675">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.1716">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.1741">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.1795">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.1840">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.1897">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.1957">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.1973">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.1989">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.2005">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.2021">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.2037">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.2120">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.2206">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.2255">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.2299">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.2311">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.2320">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.2330">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.2366">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.2393">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.2450">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.2515">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.2543">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.2603">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.2616">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..861fc6e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.0.1/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..0ebfe47
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDatasetImpl (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/DiscontiguousIterator.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#setDirty()">setDirty</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#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#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/DiscontiguousIterator.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DiscontiguousIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/DiscontiguousIterator.html
new file mode 100644
index 0000000..8d546a0
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/DiscontiguousIterator.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DiscontiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DiscontiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DiscontiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></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/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/DiscontiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="DiscontiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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 DiscontiguousIterator" class="title">Class DiscontiguousIterator</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.DiscontiguousIterator</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/DiscontiguousIterator.html#line.21">DiscontiguousIterator</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 non-contiguous or fragmented 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/DiscontiguousIterator.html#DiscontiguousIterator(int[],%20int[],%20int)">DiscontiguousIterator</a></strong>(int[]&nbsp;shape,
+                                          int[]&nbsp;dataShape,
+                                          int&nbsp;length)</code>
+<div class="block">Constructor for an iterator over the elements 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/DiscontiguousIterator.html#DiscontiguousIterator(int[],%20int[],%20int,%20int)">DiscontiguousIterator</a></strong>(int[]&nbsp;shape,
+                                          int[]&nbsp;dataShape,
+                                          int&nbsp;length,
+                                          int&nbsp;isize)</code>
+<div class="block">Constructor for an iterator over the elements 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/DiscontiguousIterator.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/DiscontiguousIterator.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/DiscontiguousIterator.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/DiscontiguousIterator.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="DiscontiguousIterator(int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DiscontiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DiscontiguousIterator.html#line.37">DiscontiguousIterator</a>(int[]&nbsp;shape,
+                     int[]&nbsp;dataShape,
+                     int&nbsp;length)</pre>
+<div class="block">Constructor for an iterator over the elements of a dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>dataShape</code> - </dd><dd><code>length</code> - of entire data array</dd></dl>
+</li>
+</ul>
+<a name="DiscontiguousIterator(int[], int[], int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DiscontiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DiscontiguousIterator.html#line.50">DiscontiguousIterator</a>(int[]&nbsp;shape,
+                     int[]&nbsp;dataShape,
+                     int&nbsp;length,
+                     int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the elements of a dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>dataShape</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/DiscontiguousIterator.html#line.68">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/DiscontiguousIterator.html#line.90">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="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DiscontiguousIterator.html#line.95">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/DiscontiguousIterator.html#line.102">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/DiscontiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></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/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/DiscontiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="DiscontiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..6a15d8e
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:31 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/DiscontiguousIterator.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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.914">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.932">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.950">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.960">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.970">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.981">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.1015">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.1050">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.1084">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.1135">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.1145">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.1188">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.1255">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/DiscontiguousIterator.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..7ea084e
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.914">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.932">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.950">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.960">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.970">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.981">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.1015">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.1050">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.1084">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.1135">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.1145">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.1188">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.1255">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..4e46f1c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataListener (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..5278c9e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..8d08265
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..2c22a3b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetConnector (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..f0dde9d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.0.1/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..a7d451e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicShape (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.0.1/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..0798254
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IFileConnection (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..22fbf7f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..5ee9269
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.0.1/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..df6d466
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadataProvider (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..b2d87ee
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.0.1/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..e2d2f12
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IRemoteData (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..8071569
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IndexIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..3b4b5c0
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.907">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.925">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.943">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.948">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.953">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.958">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.992">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.1027">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.1061">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.1112">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.1117">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.1168">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.1235">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..9bc8701
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.60">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.65">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..ac94c8c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegersIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.190">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.195">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.252">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.257">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..6c27e89
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InterpolatorUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.58">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.58">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.60">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.92">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.403">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.441">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.491">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.537">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..83a1707
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..b8187ef
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,898 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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/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="altColor">
+<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="rowColor">
+<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="altColor">
+<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.58">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.63">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.65">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.70">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.73">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.78">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.83">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.108">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.118">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.123">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.128">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.133">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="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.144">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.184">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.189">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.223">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.229">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.245">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.260">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.278">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.285">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.742">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.752">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.761">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.769">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.939">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.946">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.988">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.1015">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.1027">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.1033">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.1043">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..94cc8fe
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.0.1/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..ac1501b
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyMaths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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><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 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.26">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>
+<!-- ======== 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/LazyMaths.html#LazyMaths()">LazyMaths</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/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"><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"><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.30">logger</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="LazyMaths()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyMaths</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.26">LazyMaths</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="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.38">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.67">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.79">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.115">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.144">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.173">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><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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..9d5dacb
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#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.140">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.145">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.150">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.168">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.173">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.178">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.183">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.188">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.199">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.204">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.209">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.214">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.262">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.268">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.276">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.281">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.0.1/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..f63da55
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra.NormOrder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.781">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.785">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.789">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.793">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.797">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.801">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.781">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.781">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.0.1/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..cfa56c5
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.127">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.226">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.238">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.277">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.292">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.558">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.577">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.674">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.686">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.808">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.817">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.923">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.1041">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.1052">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.1063">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.1073">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.1083">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.1092">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.1101">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.1117">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.1137">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.1147">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.1158">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.1169">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.1186">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.1201">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.1213">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.1226">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..29f0955
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.907">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.925">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.943">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.948">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.953">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.958">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.992">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.1027">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.1061">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.1112">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.1117">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.1168">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.1235">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Maths.html b/apidocs/2.0.1/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..2146961
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,3123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Maths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.Maths</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.26">Maths</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</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#add(java.lang.Object,%20java.lang.Object)">add</a></strong>(<a href="https://docs.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">add operator</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.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">add</a></strong>(<a href="https://docs.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">add operator</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#addBinaryOperatorName(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20java.lang.String)">addBinaryOperatorName</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;dataset,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;oname)</code>&nbsp;</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/Maths.html#addFunctionName(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20java.lang.String)">addFunctionName</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;dataset,
+                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#addFunctionName(org.eclipse.january.dataset.Dataset,%20java.lang.String)">addFunctionName</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/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</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#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"><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"><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"><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>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#arccos(java.lang.Object)">arccos</a></strong>(<a href="https://docs.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">arccos - evaluate the inverse cosine function on each element of the 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#arccos(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arccos</a></strong>(<a href="https://docs.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">arccos - evaluate the inverse cosine function on each element of the 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#arccosh(java.lang.Object)">arccosh</a></strong>(<a href="https://docs.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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the 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#arccosh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arccosh</a></strong>(<a href="https://docs.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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the 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#arcsin(java.lang.Object)">arcsin</a></strong>(<a href="https://docs.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">arcsin - evaluate the inverse sine function on each element of the 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#arcsin(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arcsin</a></strong>(<a href="https://docs.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">arcsin - evaluate the inverse sine function on each element of the 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#arcsinh(java.lang.Object)">arcsinh</a></strong>(<a href="https://docs.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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the 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#arcsinh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arcsinh</a></strong>(<a href="https://docs.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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the 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#arctan(java.lang.Object)">arctan</a></strong>(<a href="https://docs.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">arctan - evaluate the inverse tangent function on each element of the 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#arctan(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctan</a></strong>(<a href="https://docs.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">arctan - evaluate the inverse tangent function on each element of the 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#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"><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="../../../../org/eclipse/january/dataset/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#arctanh(java.lang.Object)">arctanh</a></strong>(<a href="https://docs.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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the 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#arctanh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctanh</a></strong>(<a href="https://docs.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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the 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#bitwiseAnd(java.lang.Object,%20java.lang.Object)">bitwiseAnd</a></strong>(<a href="https://docs.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">bitwiseAnd operator</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#bitwiseAnd(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">bitwiseAnd</a></strong>(<a href="https://docs.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">bitwiseAnd operator</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#bitwiseInvert(java.lang.Object)">bitwiseInvert</a></strong>(<a href="https://docs.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">bitwiseInvert - ~a, bitwise invert (or NOT) 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#bitwiseInvert(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">bitwiseInvert</a></strong>(<a href="https://docs.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">bitwiseInvert - ~a, bitwise invert (or NOT) 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#bitwiseOr(java.lang.Object,%20java.lang.Object)">bitwiseOr</a></strong>(<a href="https://docs.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">bitwiseOr operator</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#bitwiseOr(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">bitwiseOr</a></strong>(<a href="https://docs.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">bitwiseOr operator</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#bitwiseXor(java.lang.Object,%20java.lang.Object)">bitwiseXor</a></strong>(<a href="https://docs.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">bitwiseXor operator</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#bitwiseXor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">bitwiseXor</a></strong>(<a href="https://docs.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">bitwiseXor operator</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#cbrt(java.lang.Object)">cbrt</a></strong>(<a href="https://docs.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">cbrt - evaluate the cube root function on each element of the 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#cbrt(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">cbrt</a></strong>(<a href="https://docs.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">cbrt - evaluate the cube root function on each element of the 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#ceil(java.lang.Object)">ceil</a></strong>(<a href="https://docs.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">ceil - evaluate the ceiling function on each element of the 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#ceil(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">ceil</a></strong>(<a href="https://docs.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">ceil - evaluate the ceiling function on each element of the 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#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="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#clip(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20java.lang.Object,%20java.lang.Object)">clip</a></strong>(<a href="https://docs.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,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pb)</code>
+<div class="block">clip - clip elements to limits</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#clip(java.lang.Object,%20java.lang.Object,%20java.lang.Object)">clip</a></strong>(<a href="https://docs.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;pa,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pb)</code>
+<div class="block">clip - clip elements to limits</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#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="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,%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="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#cos(java.lang.Object)">cos</a></strong>(<a href="https://docs.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">cos - evaluate the cosine function on each element of the 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#cos(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">cos</a></strong>(<a href="https://docs.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">cos - evaluate the cosine function on each element of the 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#cosh(java.lang.Object)">cosh</a></strong>(<a href="https://docs.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">cosh - evaluate the hyperbolic cosine function on each element of the 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#cosh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">cosh</a></strong>(<a href="https://docs.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">cosh - evaluate the hyperbolic cosine function on each element of the 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#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"><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"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#divide(java.lang.Object,%20java.lang.Object)">divide</a></strong>(<a href="https://docs.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">divide operator</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#divide(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">divide</a></strong>(<a href="https://docs.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">divide operator</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#divideTowardsFloor(java.lang.Object,%20java.lang.Object)">divideTowardsFloor</a></strong>(<a href="https://docs.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">divideTowardsFloor operator</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#divideTowardsFloor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">divideTowardsFloor</a></strong>(<a href="https://docs.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">divideTowardsFloor operator</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#dividez(java.lang.Object,%20java.lang.Object)">dividez</a></strong>(<a href="https://docs.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">dividez operator</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#dividez(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">dividez</a></strong>(<a href="https://docs.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">dividez operator</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#exp(java.lang.Object)">exp</a></strong>(<a href="https://docs.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">exp - evaluate the exponential function on each element of the 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#exp(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">exp</a></strong>(<a href="https://docs.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">exp - evaluate the exponential function on each element of the 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#expm1(java.lang.Object)">expm1</a></strong>(<a href="https://docs.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">expm1 - evaluate the exponential function - 1 on each element of the 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#expm1(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">expm1</a></strong>(<a href="https://docs.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">expm1 - evaluate the exponential function - 1 on each element of the 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#floor(java.lang.Object)">floor</a></strong>(<a href="https://docs.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">floor - evaluate the floor function on each element of the 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#floor(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floor</a></strong>(<a href="https://docs.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">floor - evaluate the floor function on each element of the 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#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"><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"><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"><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>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="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,%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="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,%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="altColor">
+<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="rowColor">
+<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="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/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="../../../../org/eclipse/january/dataset/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="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,%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 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="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;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D 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,%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="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#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 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="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;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D 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,%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="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;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"><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"><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/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#leftShift(java.lang.Object,%20java.lang.Object)">leftShift</a></strong>(<a href="https://docs.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">leftShift operator</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#leftShift(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">leftShift</a></strong>(<a href="https://docs.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">leftShift operator</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#log(java.lang.Object)">log</a></strong>(<a href="https://docs.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">log - evaluate the logarithm function on each element of the 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#log(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">log</a></strong>(<a href="https://docs.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">log - evaluate the logarithm function on each element of the 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#log10(java.lang.Object)">log10</a></strong>(<a href="https://docs.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">log10 - evaluate the logarithm function on each element of the 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#log10(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">log10</a></strong>(<a href="https://docs.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">log10 - evaluate the logarithm function on each element of the 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#log1p(java.lang.Object)">log1p</a></strong>(<a href="https://docs.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">log1p - evaluate the logarithm function of 1 plus on each element of the 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#log1p(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">log1p</a></strong>(<a href="https://docs.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">log1p - evaluate the logarithm function of 1 plus on each element of the 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#log2(java.lang.Object)">log2</a></strong>(<a href="https://docs.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">log2 - evaluate the logarithm function on each element of the 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#log2(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">log2</a></strong>(<a href="https://docs.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">log2 - evaluate the logarithm function on each element of the 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#maximum(java.lang.Object,%20java.lang.Object)">maximum</a></strong>(<a href="https://docs.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">maximum operator</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#maximum(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">maximum</a></strong>(<a href="https://docs.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">maximum operator</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#minimum(java.lang.Object,%20java.lang.Object)">minimum</a></strong>(<a href="https://docs.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">minimum operator</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#minimum(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">minimum</a></strong>(<a href="https://docs.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">minimum operator</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#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="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.lang.Object,%20java.lang.Object)">multiply</a></strong>(<a href="https://docs.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">multiply operator</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#multiply(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">multiply</a></strong>(<a href="https://docs.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">multiply operator</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#negative(java.lang.Object)">negative</a></strong>(<a href="https://docs.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">negative - negative 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#negative(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">negative</a></strong>(<a href="https://docs.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">negative - negative 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#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"><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"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#power(java.lang.Object,%20java.lang.Object)">power</a></strong>(<a href="https://docs.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">power operator</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#power(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">power</a></strong>(<a href="https://docs.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">power operator</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)">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"><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"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#remainder(java.lang.Object,%20java.lang.Object)">remainder</a></strong>(<a href="https://docs.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">remainder operator</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#remainder(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">remainder</a></strong>(<a href="https://docs.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">remainder operator</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#rightShift(java.lang.Object,%20java.lang.Object)">rightShift</a></strong>(<a href="https://docs.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">rightShift operator</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#rightShift(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">rightShift</a></strong>(<a href="https://docs.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">rightShift operator</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#rint(java.lang.Object)">rint</a></strong>(<a href="https://docs.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">rint - round each element of the 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#rint(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">rint</a></strong>(<a href="https://docs.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">rint - round each element of the 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#signum(java.lang.Object)">signum</a></strong>(<a href="https://docs.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">signum - sign 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#signum(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">signum</a></strong>(<a href="https://docs.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">signum - sign 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#sin(java.lang.Object)">sin</a></strong>(<a href="https://docs.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">sin - evaluate the sine function on each element of the 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#sin(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">sin</a></strong>(<a href="https://docs.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">sin - evaluate the sine function on each element of the 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#sinh(java.lang.Object)">sinh</a></strong>(<a href="https://docs.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">sinh - evaluate the hyperbolic sine function on each element of the 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#sinh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">sinh</a></strong>(<a href="https://docs.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">sinh - evaluate the hyperbolic sine function on each element of the 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#sqrt(java.lang.Object)">sqrt</a></strong>(<a href="https://docs.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">sqrt - evaluate the square root function on each element of the 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#sqrt(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">sqrt</a></strong>(<a href="https://docs.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">sqrt - evaluate the square root function on each element of the 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#square(java.lang.Object)">square</a></strong>(<a href="https://docs.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">square - square 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#square(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">square</a></strong>(<a href="https://docs.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">square - square 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#subtract(java.lang.Object,%20java.lang.Object)">subtract</a></strong>(<a href="https://docs.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">subtract operator</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#subtract(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">subtract</a></strong>(<a href="https://docs.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">subtract operator</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#tan(java.lang.Object)">tan</a></strong>(<a href="https://docs.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">tan - evaluate the tangent function on each element of the 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#tan(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">tan</a></strong>(<a href="https://docs.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">tan - evaluate the tangent function on each element of the 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#tanh(java.lang.Object)">tanh</a></strong>(<a href="https://docs.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">tanh - evaluate the tangent hyperbolic function on each element of the 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#tanh(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">tanh</a></strong>(<a href="https://docs.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">tanh - evaluate the tangent hyperbolic function on each element of the 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#toDegrees(java.lang.Object)">toDegrees</a></strong>(<a href="https://docs.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">toDegrees - convert to degrees</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#toDegrees(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">toDegrees</a></strong>(<a href="https://docs.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">toDegrees - convert to degrees</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#toLong(double)">toLong</a></strong>(double&nbsp;d)</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#toRadians(java.lang.Object)">toRadians</a></strong>(<a href="https://docs.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">toRadians - convert to radians</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#toRadians(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">toRadians</a></strong>(<a href="https://docs.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">toRadians - convert to radians</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#truncate(java.lang.Object)">truncate</a></strong>(<a href="https://docs.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">truncate - truncate each element to integers of the 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#truncate(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">truncate</a></strong>(<a href="https://docs.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">truncate - truncate each element to integers of the 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#unsignedRightShift(java.lang.Object,%20java.lang.Object)">unsignedRightShift</a></strong>(<a href="https://docs.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">unsignedRightShift operator</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#unsignedRightShift(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">unsignedRightShift</a></strong>(<a href="https://docs.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">unsignedRightShift operator</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_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.26">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.33">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.43">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.53">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.69">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.79">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.88">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.98">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.111">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.121">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.131">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.141">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.384">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.393">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.432">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.442">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.696">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.706">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.960">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.970">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.980">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.991">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.1249">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.1260">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.1347">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.1372">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.1396">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.1477">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.1506">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.1535">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.1582">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.1641">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.1698">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.1775">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.1788">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.1881">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.1968">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.1982">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.1995">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.2009">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.2022">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.2464">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.2562">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.2638">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="blockList">
+<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.2909">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>
+<a name="addFunctionName(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFunctionName</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/GeneratedMaths.html#line.21">addFunctionName</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;dataset,
+                   <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
+</li>
+</ul>
+<a name="addFunctionName(org.eclipse.january.dataset.Dataset, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFunctionName</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/GeneratedMaths.html#line.25">addFunctionName</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/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
+</li>
+</ul>
+<a name="addBinaryOperatorName(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addBinaryOperatorName</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/GeneratedMaths.html#line.29">addBinaryOperatorName</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;dataset,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;oname)</pre>
+</li>
+</ul>
+<a name="toLong(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>protected static&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/GeneratedMaths.html#line.33">toLong</a>(double&nbsp;d)</pre>
+</li>
+</ul>
+<a name="add(java.lang.Object, java.lang.Object)">
+<!--   -->
+</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/GeneratedMaths.html#line.44">add</a>(<a href="https://docs.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">add operator</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>a + b, addition of a and b</dd></dl>
+</li>
+</ul>
+<a name="add(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</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/GeneratedMaths.html#line.55">add</a>(<a href="https://docs.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">add operator</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>a + b, addition of a and b</dd></dl>
+</li>
+</ul>
+<a name="subtract(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subtract</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/GeneratedMaths.html#line.934">subtract</a>(<a href="https://docs.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">subtract operator</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>a - b, subtraction of a by b</dd></dl>
+</li>
+</ul>
+<a name="subtract(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subtract</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/GeneratedMaths.html#line.945">subtract</a>(<a href="https://docs.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">subtract operator</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>a - b, subtraction of a by b</dd></dl>
+</li>
+</ul>
+<a name="multiply(java.lang.Object, java.lang.Object)">
+<!--   -->
+</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/GeneratedMaths.html#line.1824">multiply</a>(<a href="https://docs.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">multiply operator</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>a * b, product of a and b</dd></dl>
+</li>
+</ul>
+<a name="multiply(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</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/GeneratedMaths.html#line.1835">multiply</a>(<a href="https://docs.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">multiply operator</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>a * b, product of a and b</dd></dl>
+</li>
+</ul>
+<a name="divide(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>divide</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/GeneratedMaths.html#line.2714">divide</a>(<a href="https://docs.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">divide operator</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>a / b, division of a by b</dd></dl>
+</li>
+</ul>
+<a name="divide(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>divide</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/GeneratedMaths.html#line.2725">divide</a>(<a href="https://docs.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">divide operator</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>a / b, division of a by b</dd></dl>
+</li>
+</ul>
+<a name="dividez(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dividez</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/GeneratedMaths.html#line.3706">dividez</a>(<a href="https://docs.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">dividez operator</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>a / b, division of a by b</dd></dl>
+</li>
+</ul>
+<a name="dividez(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dividez</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/GeneratedMaths.html#line.3717">dividez</a>(<a href="https://docs.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">dividez operator</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>a / b, division of a by b</dd></dl>
+</li>
+</ul>
+<a name="divideTowardsFloor(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>divideTowardsFloor</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/GeneratedMaths.html#line.4680">divideTowardsFloor</a>(<a href="https://docs.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">divideTowardsFloor operator</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>a / b, division of a by b but rounded towards negative infinity</dd></dl>
+</li>
+</ul>
+<a name="divideTowardsFloor(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>divideTowardsFloor</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/GeneratedMaths.html#line.4691">divideTowardsFloor</a>(<a href="https://docs.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">divideTowardsFloor operator</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>a / b, division of a by b but rounded towards negative infinity</dd></dl>
+</li>
+</ul>
+<a name="power(java.lang.Object, java.lang.Object)">
+<!--   -->
+</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/GeneratedMaths.html#line.6120">power</a>(<a href="https://docs.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">power operator</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>a ** b, raise a to power of b</dd></dl>
+</li>
+</ul>
+<a name="power(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</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/GeneratedMaths.html#line.6131">power</a>(<a href="https://docs.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">power operator</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>a ** b, raise a to power of b</dd></dl>
+</li>
+</ul>
+<a name="remainder(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remainder</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/GeneratedMaths.html#line.7022">remainder</a>(<a href="https://docs.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">remainder operator</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>a % b, remainder of division of a by b</dd></dl>
+</li>
+</ul>
+<a name="remainder(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remainder</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/GeneratedMaths.html#line.7033">remainder</a>(<a href="https://docs.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">remainder operator</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>a % b, remainder of division of a by b</dd></dl>
+</li>
+</ul>
+<a name="maximum(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maximum</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/GeneratedMaths.html#line.7826">maximum</a>(<a href="https://docs.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">maximum operator</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>return maximum of a and b</dd></dl>
+</li>
+</ul>
+<a name="maximum(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maximum</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/GeneratedMaths.html#line.7837">maximum</a>(<a href="https://docs.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">maximum operator</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>return maximum of a and b</dd></dl>
+</li>
+</ul>
+<a name="minimum(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minimum</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/GeneratedMaths.html#line.8764">minimum</a>(<a href="https://docs.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">minimum operator</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>return minimum of a and b</dd></dl>
+</li>
+</ul>
+<a name="minimum(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minimum</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/GeneratedMaths.html#line.8775">minimum</a>(<a href="https://docs.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">minimum operator</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>return minimum of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseAnd(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseAnd</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/GeneratedMaths.html#line.9702">bitwiseAnd</a>(<a href="https://docs.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">bitwiseAnd operator</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>a & b, bitwise AND of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseAnd(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseAnd</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/GeneratedMaths.html#line.9713">bitwiseAnd</a>(<a href="https://docs.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">bitwiseAnd operator</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>a & b, bitwise AND of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseOr(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseOr</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/GeneratedMaths.html#line.10027">bitwiseOr</a>(<a href="https://docs.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">bitwiseOr operator</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>a | b, bitwise inclusive OR of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseOr(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseOr</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/GeneratedMaths.html#line.10038">bitwiseOr</a>(<a href="https://docs.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">bitwiseOr operator</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>a | b, bitwise inclusive OR of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseXor(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseXor</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/GeneratedMaths.html#line.10352">bitwiseXor</a>(<a href="https://docs.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">bitwiseXor operator</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>a ^ b, bitwise exclusive OR of a and b</dd></dl>
+</li>
+</ul>
+<a name="bitwiseXor(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseXor</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/GeneratedMaths.html#line.10363">bitwiseXor</a>(<a href="https://docs.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">bitwiseXor operator</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>a ^ b, bitwise exclusive OR of a and b</dd></dl>
+</li>
+</ul>
+<a name="leftShift(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>leftShift</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/GeneratedMaths.html#line.10677">leftShift</a>(<a href="https://docs.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">leftShift operator</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>a << b, bitwise left shift of a by b</dd></dl>
+</li>
+</ul>
+<a name="leftShift(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>leftShift</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/GeneratedMaths.html#line.10688">leftShift</a>(<a href="https://docs.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">leftShift operator</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>a << b, bitwise left shift of a by b</dd></dl>
+</li>
+</ul>
+<a name="rightShift(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightShift</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/GeneratedMaths.html#line.11002">rightShift</a>(<a href="https://docs.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">rightShift operator</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>a >> b, bitwise right shift of a by b</dd></dl>
+</li>
+</ul>
+<a name="rightShift(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rightShift</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/GeneratedMaths.html#line.11013">rightShift</a>(<a href="https://docs.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">rightShift operator</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>a >> b, bitwise right shift of a by b</dd></dl>
+</li>
+</ul>
+<a name="unsignedRightShift(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsignedRightShift</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/GeneratedMaths.html#line.11327">unsignedRightShift</a>(<a href="https://docs.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">unsignedRightShift operator</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>a >>> b, bitwise right shift of a by b with zeros added</dd></dl>
+</li>
+</ul>
+<a name="unsignedRightShift(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsignedRightShift</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/GeneratedMaths.html#line.11338">unsignedRightShift</a>(<a href="https://docs.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">unsignedRightShift operator</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>a >>> b, bitwise right shift of a by b with zeros added</dd></dl>
+</li>
+</ul>
+<a name="bitwiseInvert(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseInvert</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/GeneratedMaths.html#line.11660">bitwiseInvert</a>(<a href="https://docs.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">bitwiseInvert - ~a, bitwise invert (or NOT) 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="bitwiseInvert(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bitwiseInvert</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/GeneratedMaths.html#line.11670">bitwiseInvert</a>(<a href="https://docs.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">bitwiseInvert - ~a, bitwise invert (or NOT) 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="sin(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sin</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/GeneratedMaths.html#line.11876">sin</a>(<a href="https://docs.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">sin - evaluate the sine function on each element of the dataset</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="sin(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sin</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/GeneratedMaths.html#line.11886">sin</a>(<a href="https://docs.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">sin - evaluate the sine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="cos(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cos</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/GeneratedMaths.html#line.12428">cos</a>(<a href="https://docs.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">cos - evaluate the cosine function on each element of the dataset</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="cos(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cos</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/GeneratedMaths.html#line.12438">cos</a>(<a href="https://docs.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">cos - evaluate the cosine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="tan(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tan</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/GeneratedMaths.html#line.12980">tan</a>(<a href="https://docs.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">tan - evaluate the tangent function on each element of the dataset</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="tan(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tan</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/GeneratedMaths.html#line.12990">tan</a>(<a href="https://docs.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">tan - evaluate the tangent function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arcsin(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arcsin</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/GeneratedMaths.html#line.13556">arcsin</a>(<a href="https://docs.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">arcsin - evaluate the inverse sine function on each element of the dataset</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="arcsin(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arcsin</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/GeneratedMaths.html#line.13566">arcsin</a>(<a href="https://docs.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">arcsin - evaluate the inverse sine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arccos(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arccos</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/GeneratedMaths.html#line.14116">arccos</a>(<a href="https://docs.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">arccos - evaluate the inverse cosine function on each element of the dataset</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="arccos(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arccos</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/GeneratedMaths.html#line.14126">arccos</a>(<a href="https://docs.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">arccos - evaluate the inverse cosine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arctan(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctan</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/GeneratedMaths.html#line.14676">arctan</a>(<a href="https://docs.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">arctan - evaluate the inverse tangent function on each element of the dataset</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="arctan(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctan</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/GeneratedMaths.html#line.14686">arctan</a>(<a href="https://docs.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">arctan - evaluate the inverse tangent function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="sinh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sinh</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/GeneratedMaths.html#line.15236">sinh</a>(<a href="https://docs.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">sinh - evaluate the hyperbolic sine function on each element of the dataset</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="sinh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sinh</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/GeneratedMaths.html#line.15246">sinh</a>(<a href="https://docs.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">sinh - evaluate the hyperbolic sine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="cosh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cosh</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/GeneratedMaths.html#line.15788">cosh</a>(<a href="https://docs.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">cosh - evaluate the hyperbolic cosine function on each element of the dataset</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="cosh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cosh</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/GeneratedMaths.html#line.15798">cosh</a>(<a href="https://docs.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">cosh - evaluate the hyperbolic cosine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="tanh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tanh</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/GeneratedMaths.html#line.16340">tanh</a>(<a href="https://docs.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">tanh - evaluate the tangent hyperbolic function on each element of the dataset</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="tanh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tanh</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/GeneratedMaths.html#line.16350">tanh</a>(<a href="https://docs.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">tanh - evaluate the tangent hyperbolic function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arcsinh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arcsinh</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/GeneratedMaths.html#line.16916">arcsinh</a>(<a href="https://docs.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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the dataset</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="arcsinh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arcsinh</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/GeneratedMaths.html#line.16926">arcsinh</a>(<a href="https://docs.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">arcsinh - evaluate the inverse hyperbolic sine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arccosh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arccosh</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/GeneratedMaths.html#line.17476">arccosh</a>(<a href="https://docs.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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the dataset</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="arccosh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arccosh</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/GeneratedMaths.html#line.17486">arccosh</a>(<a href="https://docs.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">arccosh - evaluate the inverse hyperbolic cosine function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="arctanh(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctanh</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/GeneratedMaths.html#line.18036">arctanh</a>(<a href="https://docs.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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the dataset</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="arctanh(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctanh</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/GeneratedMaths.html#line.18046">arctanh</a>(<a href="https://docs.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">arctanh - evaluate the inverse hyperbolic tangent function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="log(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log</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/GeneratedMaths.html#line.18596">log</a>(<a href="https://docs.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">log - evaluate the logarithm function on each element of the dataset</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="log(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log</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/GeneratedMaths.html#line.18606">log</a>(<a href="https://docs.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">log - evaluate the logarithm function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="log2(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log2</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/GeneratedMaths.html#line.19148">log2</a>(<a href="https://docs.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">log2 - evaluate the logarithm function on each element of the dataset</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="log2(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log2</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/GeneratedMaths.html#line.19158">log2</a>(<a href="https://docs.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">log2 - evaluate the logarithm function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="log10(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log10</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/GeneratedMaths.html#line.19700">log10</a>(<a href="https://docs.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">log10 - evaluate the logarithm function on each element of the dataset</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="log10(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log10</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/GeneratedMaths.html#line.19710">log10</a>(<a href="https://docs.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">log10 - evaluate the logarithm function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="log1p(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log1p</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/GeneratedMaths.html#line.20252">log1p</a>(<a href="https://docs.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">log1p - evaluate the logarithm function of 1 plus on each element of the dataset</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="log1p(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>log1p</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/GeneratedMaths.html#line.20262">log1p</a>(<a href="https://docs.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">log1p - evaluate the logarithm function of 1 plus on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="exp(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exp</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/GeneratedMaths.html#line.20804">exp</a>(<a href="https://docs.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">exp - evaluate the exponential function on each element of the dataset</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="exp(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exp</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/GeneratedMaths.html#line.20814">exp</a>(<a href="https://docs.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">exp - evaluate the exponential function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="expm1(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>expm1</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/GeneratedMaths.html#line.21364">expm1</a>(<a href="https://docs.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">expm1 - evaluate the exponential function - 1 on each element of the dataset</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="expm1(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>expm1</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/GeneratedMaths.html#line.21374">expm1</a>(<a href="https://docs.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">expm1 - evaluate the exponential function - 1 on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="sqrt(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sqrt</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/GeneratedMaths.html#line.21924">sqrt</a>(<a href="https://docs.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">sqrt - evaluate the square root function on each element of the dataset</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="sqrt(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sqrt</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/GeneratedMaths.html#line.21934">sqrt</a>(<a href="https://docs.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">sqrt - evaluate the square root function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="cbrt(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cbrt</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/GeneratedMaths.html#line.22484">cbrt</a>(<a href="https://docs.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">cbrt - evaluate the cube root function on each element of the dataset</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="cbrt(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cbrt</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/GeneratedMaths.html#line.22494">cbrt</a>(<a href="https://docs.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">cbrt - evaluate the cube root function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="square(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>square</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/GeneratedMaths.html#line.23044">square</a>(<a href="https://docs.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">square - square 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="square(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>square</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/GeneratedMaths.html#line.23054">square</a>(<a href="https://docs.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">square - square 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="floor(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floor</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/GeneratedMaths.html#line.23596">floor</a>(<a href="https://docs.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">floor - evaluate the floor function on each element of the dataset</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="floor(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floor</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/GeneratedMaths.html#line.23606">floor</a>(<a href="https://docs.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">floor - evaluate the floor function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="ceil(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ceil</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/GeneratedMaths.html#line.24148">ceil</a>(<a href="https://docs.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">ceil - evaluate the ceiling function on each element of the dataset</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="ceil(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ceil</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/GeneratedMaths.html#line.24158">ceil</a>(<a href="https://docs.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">ceil - evaluate the ceiling function on each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="rint(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rint</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/GeneratedMaths.html#line.24700">rint</a>(<a href="https://docs.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">rint - round each element of the dataset</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="rint(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rint</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/GeneratedMaths.html#line.24710">rint</a>(<a href="https://docs.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">rint - round each element of the 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</dd></dl>
+</li>
+</ul>
+<a name="truncate(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>truncate</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/GeneratedMaths.html#line.25252">truncate</a>(<a href="https://docs.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">truncate - truncate each element to integers of the dataset</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="truncate(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>truncate</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/GeneratedMaths.html#line.25262">truncate</a>(<a href="https://docs.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">truncate - truncate each element to integers of the 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</dd></dl>
+</li>
+</ul>
+<a name="toDegrees(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toDegrees</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/GeneratedMaths.html#line.25804">toDegrees</a>(<a href="https://docs.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">toDegrees - convert to degrees</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="toDegrees(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toDegrees</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/GeneratedMaths.html#line.25814">toDegrees</a>(<a href="https://docs.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">toDegrees - convert to degrees</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="toRadians(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toRadians</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/GeneratedMaths.html#line.26356">toRadians</a>(<a href="https://docs.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">toRadians - convert to radians</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="toRadians(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toRadians</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/GeneratedMaths.html#line.26366">toRadians</a>(<a href="https://docs.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">toRadians - convert to radians</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="signum(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>signum</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/GeneratedMaths.html#line.26908">signum</a>(<a href="https://docs.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">signum - sign 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="signum(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>signum</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/GeneratedMaths.html#line.26918">signum</a>(<a href="https://docs.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">signum - sign 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="negative(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>negative</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/GeneratedMaths.html#line.27460">negative</a>(<a href="https://docs.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">negative - negative 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="negative(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>negative</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/GeneratedMaths.html#line.27470">negative</a>(<a href="https://docs.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">negative - negative 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="clip(java.lang.Object, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clip</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/GeneratedMaths.html#line.28014">clip</a>(<a href="https://docs.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;pa,
+           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pb)</pre>
+<div class="block">clip - clip elements to limits</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>pa</code> - </dd><dd><code>pb</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="clip(java.lang.Object, org.eclipse.january.dataset.Dataset, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clip</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/GeneratedMaths.html#line.28026">clip</a>(<a href="https://docs.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,
+           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pa,
+           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;pb)</pre>
+<div class="block">clip - clip elements to limits</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><dd><code>pa</code> - </dd><dd><code>pb</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..9586d91
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/NullIterator.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/NullStorelessUnivariateStatistic.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>&nbsp;</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>&nbsp;</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 iterator</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>
+<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>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/NullIterator.html#line.28">getPos</a>()</pre>
+<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>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/NullIterator.html#line.33">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>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/NullStorelessUnivariateStatistic.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html b/apidocs/2.0.1/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html
new file mode 100644
index 0000000..371dc8f
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html
@@ -0,0 +1,425 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NullStorelessUnivariateStatistic (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="NullStorelessUnivariateStatistic (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NullStorelessUnivariateStatistic.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></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/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/NullStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
+<li><a href="NullStorelessUnivariateStatistic.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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 NullStorelessUnivariateStatistic" class="title">Class NullStorelessUnivariateStatistic</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.NullStorelessUnivariateStatistic</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a>, <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">UnivariateStatistic</a>, <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/util/MathArrays.Function.html?is-external=true" title="class or interface in org.apache.commons.math3.util">MathArrays.Function</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.15">NullStorelessUnivariateStatistic</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://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</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/NullStorelessUnivariateStatistic.html#NullStorelessUnivariateStatistic()">NullStorelessUnivariateStatistic</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/NullStorelessUnivariateStatistic.html#clear()">clear</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/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#copy()">copy</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/NullStorelessUnivariateStatistic.html#evaluate(double[])">evaluate</a></strong>(double[]&nbsp;arg0)</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/NullStorelessUnivariateStatistic.html#evaluate(double[],%20int,%20int)">evaluate</a></strong>(double[]&nbsp;arg0,
+                int&nbsp;arg1,
+                int&nbsp;arg2)</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/NullStorelessUnivariateStatistic.html#getN()">getN</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/NullStorelessUnivariateStatistic.html#getResult()">getResult</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/NullStorelessUnivariateStatistic.html#increment(double)">increment</a></strong>(double&nbsp;arg0)</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/NullStorelessUnivariateStatistic.html#incrementAll(double[])">incrementAll</a></strong>(double[]&nbsp;arg0)</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/NullStorelessUnivariateStatistic.html#incrementAll(double[],%20int,%20int)">incrementAll</a></strong>(double[]&nbsp;arg0,
+                        int&nbsp;arg1,
+                        int&nbsp;arg2)</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="NullStorelessUnivariateStatistic()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NullStorelessUnivariateStatistic</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.15">NullStorelessUnivariateStatistic</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="evaluate(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.18">evaluate</a>(double[]&nbsp;arg0)
+                throws <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true#evaluate(double[])" title="class or interface in org.apache.commons.math3.stat.descriptive">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">UnivariateStatistic</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/util/MathArrays.Function.html?is-external=true#evaluate(double[])" title="class or interface in org.apache.commons.math3.util">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/util/MathArrays.Function.html?is-external=true" title="class or interface in org.apache.commons.math3.util">MathArrays.Function</a></code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code></dd></dl>
+</li>
+</ul>
+<a name="evaluate(double[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.23">evaluate</a>(double[]&nbsp;arg0,
+              int&nbsp;arg1,
+              int&nbsp;arg2)
+                throws <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true#evaluate(double[],%20int,%20int)" title="class or interface in org.apache.commons.math3.stat.descriptive">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">UnivariateStatistic</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/util/MathArrays.Function.html?is-external=true#evaluate(double[],%20int,%20int)" title="class or interface in org.apache.commons.math3.util">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/util/MathArrays.Function.html?is-external=true" title="class or interface in org.apache.commons.math3.util">MathArrays.Function</a></code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code></dd></dl>
+</li>
+</ul>
+<a name="clear()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.28">clear</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#clear()" title="class or interface in org.apache.commons.math3.stat.descriptive">clear</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="copy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.33">copy</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#copy()" title="class or interface in org.apache.commons.math3.stat.descriptive">copy</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true#copy()" title="class or interface in org.apache.commons.math3.stat.descriptive">copy</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/UnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">UnivariateStatistic</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getN()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getN</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.38">getN</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#getN()" title="class or interface in org.apache.commons.math3.stat.descriptive">getN</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getResult()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResult</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.43">getResult</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#getResult()" title="class or interface in org.apache.commons.math3.stat.descriptive">getResult</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="increment(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>increment</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.48">increment</a>(double&nbsp;arg0)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#increment(double)" title="class or interface in org.apache.commons.math3.stat.descriptive">increment</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="incrementAll(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrementAll</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.53">incrementAll</a>(double[]&nbsp;arg0)
+                  throws <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#incrementAll(double[])" title="class or interface in org.apache.commons.math3.stat.descriptive">incrementAll</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code></dd></dl>
+</li>
+</ul>
+<a name="incrementAll(double[], int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>incrementAll</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html#line.58">incrementAll</a>(double[]&nbsp;arg0,
+                int&nbsp;arg1,
+                int&nbsp;arg2)
+                  throws <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true#incrementAll(double[],%20int,%20int)" title="class or interface in org.apache.commons.math3.stat.descriptive">incrementAll</a></code>&nbsp;in interface&nbsp;<code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/exception/MathIllegalArgumentException.html?is-external=true" title="class or interface in org.apache.commons.math3.exception">MathIllegalArgumentException</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/NullStorelessUnivariateStatistic.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></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/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/NullStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
+<li><a href="NullStorelessUnivariateStatistic.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..f2d4dc7
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDataset.html
@@ -0,0 +1,1365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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/NullStorelessUnivariateStatistic.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#setDirty()">setDirty</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#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.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/NullStorelessUnivariateStatistic.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..5ff2fa6
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,1970 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.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/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.177">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.182">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.223">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.238">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.243">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.250">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.265">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.270">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.275">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.280">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.285">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.290">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.304">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.310">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.317">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.329">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.337">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.346">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.354">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.359">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.364">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.369">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.374">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.379">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.384">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.389">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.394">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.399">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.404">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.409">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.414">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.419">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.424">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.429">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.434">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.439">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.444">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.449">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.454">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.459">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.464">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.469">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.474">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.479">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.484">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.489">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.494">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.499">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.504">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.509">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.514">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.519">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.524">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.529">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.534">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.544">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.554">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.565">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.575">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.580">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.585">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.590">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.595">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.605">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.629">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.656">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.673">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.685">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.697">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.725">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.752">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.791">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.831">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.850">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.881">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.897">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.913">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.918">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.923">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.928">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.933">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.938">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.943">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.948">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.953">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.958">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.963">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..af11399
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Addition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..62b4099
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Division (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..e948fb8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionTowardsFloor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..194364d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionWithZero (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..e9b3b8a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Exponentiation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..977f5b0
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Maximum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..d3e1d68
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Minimum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..b2513e3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Multiplication (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..ba2386f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Negation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..daafa91
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Remainder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..8a4ccae
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Subtraction (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..61e3896
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..170e27a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..3d0e918
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..418e977
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..3c2c478
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..b5c9247
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Operations.html b/apidocs/2.0.1/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..f01a8f7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Outliers.html b/apidocs/2.0.1/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..a51b48d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Outliers (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..49b8600
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PositionIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.51">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.61">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.70">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.80">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.92">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.101">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.112">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.148">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.169">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.176">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.181">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.212">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.216">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..7e4cf03
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,1125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RGBDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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">Extract blue colour channel</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#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="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#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="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#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="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#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="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#createGreenDataset(int)">createGreenDataset</a></strong>(int&nbsp;dtype)</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">Convert colour dataset to a grey-scale one using given RGB to luma mapping</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">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><a href="../../../../org/eclipse/january/dataset/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">Extract red colour channel</div>
+</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()">getBlue</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#getBlue(int...)">getBlue</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#getBlue(int)">getBlue</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#getBlue(int,%20int)">getBlue</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#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="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#getBlueView()">getBlueView</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/RGBDataset.html#getDType()">getDType</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()">getGreen</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(int...)">getGreen</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#getGreen(int)">getGreen</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#getGreen(int,%20int)">getGreen</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#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="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#getGreenView()">getGreenView</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()">getRed</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(int...)">getRed</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#getRed(int)">getRed</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#getRed(int,%20int)">getRed</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#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="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#getRedView()">getRedView</a></strong>()</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"><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="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#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</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#max(boolean...)">max</a></strong>(boolean...&nbsp;ignored)</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#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#setDirty()">setDirty</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#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(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</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/RGBDataset.html#line.563">createGreyDataset</a>(int&nbsp;dtype)</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>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a grey-scale dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="createGreyDataset(double, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</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/RGBDataset.html#line.575">createGreyDataset</a>(double&nbsp;red,
+                        double&nbsp;green,
+                        double&nbsp;blue,
+                        int&nbsp;dtype)</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>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(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRedDataset</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/RGBDataset.html#line.592">createRedDataset</a>(int&nbsp;dtype)</pre>
+<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>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.601">createGreenDataset</a>(int&nbsp;dtype)</pre>
+<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>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.610">createBlueDataset</a>(int&nbsp;dtype)</pre>
+<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.638">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.645">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.652">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.663">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.678">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Random.html b/apidocs/2.0.1/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..4e43ee9
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:32 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Random (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.0.1/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..839e6b7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RunningAverage (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.0.1/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..d497ad0
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..dd68cfe
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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 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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="blockListLast">
+<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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..80c8a6d
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.156">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.178">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.183">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.249">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.264">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.269">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.276">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.291">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.296">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.301">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.306">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.311">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.316">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.330">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.336">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.343">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.355">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.363">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.372">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.380">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.385">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.390">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.395">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.400">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.405">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.410">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.415">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.420">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.425">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.430">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.435">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.440">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.445">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.450">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.455">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.460">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.465">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.470">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.475">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.480">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.485">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.490">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.495">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.500">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.505">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.510">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.515">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.520">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.525">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.530">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.535">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.540">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.545">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.550">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.555">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.560">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.570">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.580">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.591">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.601">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.606">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.611">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.616">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.621">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.631">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.655">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.682">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.699">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.711">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.723">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.751">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.778">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.817">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.857">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.876">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.907">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.925">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.943">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.948">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.953">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.958">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.992">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.1027">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.1061">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.1112">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.1117">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.1168">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.1235">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..2141fd6
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleInputBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.162">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.170">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.188">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.193">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.240">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.245">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.250">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..0b0fda9
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleItemIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Slice.html b/apidocs/2.0.1/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..aace214
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,708 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Slice (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.21">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">Class to represent a slice through a single dimension of a multi-dimensional dataset. A slice
+ comprises a starting position, a stopping position (not included) and a stepping size.</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>&nbsp;</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">Default to starting at 0 with steps 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">Default to steps 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>&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 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">Append string representation of 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"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#clone()">clone</a></strong>()</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/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">Populate 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">Convert a string to 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">Convert from a set of integer arrays to 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">Create 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>&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/dataset/Slice.html#flip()">flip</a></strong>()</code>
+<div class="block">Flip slice direction so 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">Get position of n-th step in 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&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/dataset/Slice.html#setLength(int)">setLength</a></strong>(int&nbsp;length)</code>
+<div class="block">Set maximum value of 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">Set start and end from implied number of steps.</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 starting position of 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 step size of 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 stopping position of 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>&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#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.33">Slice</a>()</pre>
+</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.41">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">Default to starting at 0 with steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - if null, then default to whatever shape is when converted</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.50">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">Default to steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - if null, then default to 0</dd><dd><code>stop</code> - if null, then default to whatever shape is when converted</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.60">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>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - if null, then default to bound</dd><dd><code>stop</code> - if null, then default to bound</dd><dd><code>step</code> - if null, then default to 1</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.79">clone</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#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>
+</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.88">setLength</a>(int&nbsp;length)</pre>
+<div class="block">Set maximum value of slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>length</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>this slice</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.102">isSliceComplete</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if slice represents complete dimension</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.115">getLength</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>maximum value of 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.122">getStart</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>starting position of 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.129">getStop</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>stopping position of 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.136">getStep</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>step size of 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.144">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 starting position of slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - (can be null)</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.165">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 stopping position of slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - (can be null)</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.190">setPosition</a>(int&nbsp;beg)</pre>
+<div class="block">Set start and end from implied number of steps. I.e. shift start to position given by
+ parameter whilst keeping size of slice fixed</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beg</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if end reached</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.208">getPosition</a>(int&nbsp;n)</pre>
+<div class="block">Get position of n-th step in slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>position</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.237">setStep</a>(int&nbsp;step)</pre>
+<div class="block">Set step size of slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>step</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.252">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">Append string representation of slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>s</code> - </dd><dd><code>len</code> - </dd><dd><code>beg</code> - </dd><dd><code>end</code> - </dd><dd><code>del</code> - </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.287">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="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.296">getNumSteps</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of steps in 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.317">getNumSteps</a>(int&nbsp;beg,
+              int&nbsp;end)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beg</code> - </dd><dd><code>end</code> - (exclusive)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of steps between 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.329">getEnd</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>last value in slice (< stop if step > 0, > stop if step < 0)</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.343">flip</a>()</pre>
+<div class="block">Flip slice direction so 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</div>
+</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.366">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">Populate given start, stop, step arrays from given slice array</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>slice</code> - </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.436">convertToSlice</a>(int[]&nbsp;start,
+                     int[]&nbsp;stop,
+                     int[]&nbsp;step)</pre>
+<div class="block">Convert from a set of integer arrays to a slice array</div>
+<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>a slice array</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.458">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">Convert a string to a slice array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sliceString</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a slice array</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.515">createString</a>(int[]&nbsp;shape,
+                  int[]&nbsp;start,
+                  int[]&nbsp;stop,
+                  int[]&nbsp;step)</pre>
+<div class="block">Create a string representing the slice taken from given shape</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>
+<dt><span class="strong">Returns:</span></dt><dd>string representation</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.538">createString</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slices</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>string specifying slices</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..cd8e98b
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/SliceIterator.html
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.21">SliceIterator</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 slice of a 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/SliceIterator.html#SliceIterator(int[],%20int,%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;sshape)</code>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced 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/SliceIterator.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/SliceIterator.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/SliceIterator.html#getStart()">getStart</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/SliceIterator.html#getStep()">getStep</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/SliceIterator.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/SliceIterator.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/SliceIterator.html#setStart(int...)">setStart</a></strong>(int...&nbsp;newStart)</code>
+<div class="block">Set start (prefix with zeros if necessary)</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.44">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>sshape</code> - shape of 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.56">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>start</code> - (if null then equivalent to the origin)</dd><dd><code>sshape</code> - shape of 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.68">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>sshape</code> - shape of 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.81">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>start</code> - (if null then equivalent to the origin)</dd><dd><code>sshape</code> - shape of 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.94">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>start</code> - (if null then equivalent to the origin)</dd><dd><code>step</code> - (cannot contain zeros, if null then equivalent to ones)</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.105">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">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>slice</code> - </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.117">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">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>isize</code> - number of elements in an item</dd><dd><code>slice</code> - </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.131">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the elements of a sliced dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - or dataShape</dd><dd><code>length</code> - of entire data array</dd><dd><code>start</code> - (if null then equivalent to the origin)</dd><dd><code>step</code> - (cannot contain zeros, if null then equivalent to ones)</dd><dd><code>sshape</code> - shape of 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.182">setStart</a>(int...&nbsp;newStart)</pre>
+<div class="block">Set start (prefix with zeros if necessary)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newStart</code> - if null, then treat as origin</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.210">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="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.227">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="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.249">getStart</a>()</pre>
+</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.254">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="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.258">getStep</a>()</pre>
+</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.263">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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/SliceND.html b/apidocs/2.0.1/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..a4c15cb
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,653 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceND (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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">Class to represent a slice through all dimensions of a multi-dimensional dataset. A slice
+ comprises a starting position array, a stopping position array (not included) and a stepping size array.
+ 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 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 ND slice parameters</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 ND slice parameters</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 ND slice from an array of 1D slices</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 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>&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/dataset/SliceND.html#convertToSlice()">convertToSlice</a></strong>()</code>
+<div class="block">Convert to a slice array</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">Creating slice 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 slice 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">Flip slice direction in all dimensions so 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/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">Flip slice direction in given dimension so 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">Note stop values are clamped to -1 for <b>negative</b> 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/SliceND.html#isAll()">isAll</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/SliceND.html#isExpanded()">isExpanded</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/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</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</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>&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#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.35">SliceND</a>(int[]&nbsp;shape)</pre>
+<div class="block">Construct ND slice for whole of shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </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.52">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 ND slice from an array of 1D slices</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>slice</code> - </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.62">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 ND slice from an array of 1D slices</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>maxShape</code> - can be null</dd><dd><code>slice</code> - </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.109">SliceND</a>(int[]&nbsp;shape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</pre>
+<div class="block">Construct ND slice parameters</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>start</code> - can be null</dd><dd><code>stop</code> - can be null</dd><dd><code>step</code> - can be null</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.125">SliceND</a>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</pre>
+<div class="block">Construct ND slice parameters</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>maxShape</code> - can be null</dd><dd><code>start</code> - can be null</dd><dd><code>stop</code> - can be null</dd><dd><code>step</code> - 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="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.177">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</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - dimension</dd><dd><code>start</code> - can be null to imply start of dimension</dd><dd><code>stop</code> - can be null to imply end of dimension</dd><dd><code>step</code> - </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.188">setSlice</a>(int&nbsp;i,
+            int&nbsp;start,
+            int&nbsp;stop,
+            int&nbsp;step)</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>start</code> - </dd><dd><code>stop</code> - </dd><dd><code>step</code> - </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.198">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> - </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.307">getSourceShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of source dataset (this can change for dynamic datasets)</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.314">getMaxShape</a>()</pre>
+<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.321">isExpanded</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if slice makes shape larger</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.328">getShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>resulting shape (this can change if the start, stop, step arrays are changed)</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.335">getStart</a>()</pre>
+<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.343">getStop</a>()</pre>
+<div class="block">Note stop values are clamped to -1 for <b>negative</b> steps</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.350">getStep</a>()</pre>
+<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.357">isAll</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if all of original shape is covered by this slice with positive steps</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.379">flip</a>(int&nbsp;i)</pre>
+<div class="block">Flip slice direction in given dimension so 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.401">flip</a>()</pre>
+<div class="block">Flip slice direction in all dimensions so slice begins at previous end point,
+ steps in the opposite direction, and finishes 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.414">convertToSlice</a>()</pre>
+<div class="block">Convert to a slice array</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.427">clone</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#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>
+</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.440">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="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.461">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">Creating slice from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>start</code> - </dd><dd><code>stop</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>slice</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.473">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 slice from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>start</code> - </dd><dd><code>stop</code> - </dd><dd><code>step</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..ceb7b77
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceNDIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.128">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.166">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.174">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.182">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.190">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.198">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.206">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.213">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.218">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.272">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/Stats.html b/apidocs/2.0.1/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..1ad9b34
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,852 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Stats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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,%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="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="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#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 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="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;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="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#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="rowColor">
+<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="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#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="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#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="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#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="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#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"><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"><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"><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 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.296">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.316">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.343">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.406">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.416">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.438">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.778">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.788">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.799">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.817">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.827">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.838">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.849">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.970">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.1176">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.1187">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.1393">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.1404">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.1591">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.1627">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.1638">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.1658">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="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.1830">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.1840">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.1850">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.1865">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..ab80231
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StrideIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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;oStrides,
+                            int&nbsp;oOffset,
+                            <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>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.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/StrideIterator.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/StrideIterator.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.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#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.27">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.31">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.35">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.39">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.43">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.47">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.52">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.56">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.60">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;oStrides,
+              int&nbsp;oOffset,
+              <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="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.103">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape</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>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/StrideIterator.html#line.108">hasNext</a>()</pre>
+<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>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/StrideIterator.html#line.129">getPos</a>()</pre>
+<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>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/StrideIterator.html#line.134">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>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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..48c7f98
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/StringDataset.html
@@ -0,0 +1,1306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..988a883
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,1970 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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#setDirty()">setDirty</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#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.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.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/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.177">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.182">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.223">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.238">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.243">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.250">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.265">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.270">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.275">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.280">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.285">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.290">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.304">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.310">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.317">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.329">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.337">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.346">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.354">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.359">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.364">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.369">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.374">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.379">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.384">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.389">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.394">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.399">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.404">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.409">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.414">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.419">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.424">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.429">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.434">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.439">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.444">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.449">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.454">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.459">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.464">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.469">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.474">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.479">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.484">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.489">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.494">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.499">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.504">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.509">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.514">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.519">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.524">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.529">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.534">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.544">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.554">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.565">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.575">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.580">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.585">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.590">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.595">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.605">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.629">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.656">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.673">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.685">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.697">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.725">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.752">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.791">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.831">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.850">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.881">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.897">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.913">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.918">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.923">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.928">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.933">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.938">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.943">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.948">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.953">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.958">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.963">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.0.1/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..21e0514
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.78">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.86">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.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;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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..1f6d9fd
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html
new file mode 100644
index 0000000..28b24e3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AbstractDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AbstractDataset.html
new file mode 100644
index 0000000..6c5dbd5
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AggregateDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/AggregateDataset.html
new file mode 100644
index 0000000..a4b1ec7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html
new file mode 100644
index 0000000..e411cea
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BinaryOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BinaryOperation.html
new file mode 100644
index 0000000..5f29a39
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanDataset.html
new file mode 100644
index 0000000..9266d4e
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanDataset.html
@@ -0,0 +1,591 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>&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#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>&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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html
new file mode 100644
index 0000000..d9af913
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanIterator.html
new file mode 100644
index 0000000..cc53511
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BooleanIterator.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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 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><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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastIterator.html
new file mode 100644
index 0000000..d850c2a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html
new file mode 100644
index 0000000..8d688c8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html
new file mode 100644
index 0000000..7e4f4f9
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html
new file mode 100644
index 0000000..713f279
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html
new file mode 100644
index 0000000..06fc0d0
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/BroadcastUtils.html
new file mode 100644
index 0000000..435466f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ByteDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ByteDataset.html
new file mode 100644
index 0000000..8c12c65
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CollectionStats.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CollectionStats.html
new file mode 100644
index 0000000..6c1f1f4
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..d517a5a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Comparisons.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Comparisons.html
new file mode 100644
index 0000000..968aae3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html
new file mode 100644
index 0000000..ae5e145
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html
new file mode 100644
index 0000000..dc2ae7e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundByteDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundByteDataset.html
new file mode 100644
index 0000000..305dd65
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundDataset.html
new file mode 100644
index 0000000..b12e167
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundDataset.html
@@ -0,0 +1,860 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>
+</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">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="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(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">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="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(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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.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">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.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">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="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#getBroadcastView(int...)">getBroadcastView</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#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">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/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="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/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="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#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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.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">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.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">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="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,%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">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/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/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/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/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="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(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">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="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.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">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/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/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="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(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">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><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/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><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/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="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#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">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="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#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">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="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#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">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="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#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">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="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#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">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="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#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">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="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#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">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="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#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">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="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#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">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="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,%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">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="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.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">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="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#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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.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">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.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">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="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#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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.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">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.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">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="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#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">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="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#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">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="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#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">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="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#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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.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">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.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">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="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#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">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="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#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">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>
+<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#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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html
new file mode 100644
index 0000000..6575ba8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html
new file mode 100644
index 0000000..340f89b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html
new file mode 100644
index 0000000..8a6ee95
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundLongDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundLongDataset.html
new file mode 100644
index 0000000..078a938
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundShortDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/CompoundShortDataset.html
new file mode 100644
index 0000000..7c9b0ee
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousIterator.html
new file mode 100644
index 0000000..75e52fa
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..f382ed9
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html
new file mode 100644
index 0000000..0898c36
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html
new file mode 100644
index 0000000..06891eb
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DTypeUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DTypeUtils.html
new file mode 100644
index 0000000..e03ff2b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DataEvent.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DataEvent.html
new file mode 100644
index 0000000..6c7185a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DataListenerDelegate.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DataListenerDelegate.html
new file mode 100644
index 0000000..99ded49
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Dataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Dataset.html
new file mode 100644
index 0000000..e72a907
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Dataset.html
@@ -0,0 +1,4117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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">BroadcastIteratorBase.</span><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>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>
+</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>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="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#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="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#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="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>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="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#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="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)">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 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"><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 to given stop in given steps</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">Extract blue colour channel</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">Extract green colour channel</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">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"><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">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>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">Extract red colour channel</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">RunningAverage.</span><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><a 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="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#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/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="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#getErrorBuffer()">getErrorBuffer</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">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="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#getErrors()">getErrors</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">AbstractDataset.</span><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><a 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="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">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.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">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</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">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="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 content</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#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><a 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="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#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/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="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 <a 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="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)">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="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[],%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="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>
+<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.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="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#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="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#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/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="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,%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"><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="../../../../../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="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><a 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="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#product(int,%20boolean...)">product</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">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="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)">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"><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><a 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="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#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/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="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#rootMeanSquare(int,%20boolean...)">rootMeanSquare</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#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="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;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="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#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="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/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/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="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.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"><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="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,%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/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/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="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>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="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">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><a 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="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#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">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.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">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="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#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">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.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">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.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">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="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#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/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="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#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>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>
+<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#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"><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="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><a 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="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#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/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="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#synchronizedCopy()">synchronizedCopy</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">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#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">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>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="../../../../../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="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#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="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#transpose(int...)">transpose</a></strong>(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">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="../../../../../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="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#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">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="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#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/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="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(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="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)">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="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[],%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">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="altColor">
+<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="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/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/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="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/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="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#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"><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">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>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 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="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;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D 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,%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="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 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="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;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D 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,%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="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#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="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#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="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#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="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#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"><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 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="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#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="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="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#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"><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="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#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="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>
+<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)">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 <a 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 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="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,%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="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(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"><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="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>
+<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.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="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#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="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/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/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="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#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/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/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/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/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="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#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/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>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">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="altColor">
+<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="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/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset)">BooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that are
+ true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection,
+                              boolean&nbsp;value)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that match
+ given value</div>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DatasetFactory.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DatasetFactory.html
new file mode 100644
index 0000000..43cf238
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DatasetUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DatasetUtils.html
new file mode 100644
index 0000000..7e07504
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DateDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DateDataset.html
new file mode 100644
index 0000000..faa2159
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DateDatasetImpl.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DateDatasetImpl.html
new file mode 100644
index 0000000..1d99960
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DiscontiguousIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DiscontiguousIterator.html
new file mode 100644
index 0000000..5f59682
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DiscontiguousIterator.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DiscontiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.DiscontiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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/DiscontiguousIterator.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/DiscontiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="DiscontiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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.DiscontiguousIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.DiscontiguousIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.DiscontiguousIterator</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/DiscontiguousIterator.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/DiscontiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="DiscontiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DoubleDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DoubleDataset.html
new file mode 100644
index 0000000..a639b7a
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/DoubleDataset.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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 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">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="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#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/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="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#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/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="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#getImaginaryView()">getImaginaryView</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#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"><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="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/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="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#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/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="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#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/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="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#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/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="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#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/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="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#ones(int...)">ones</a></strong>(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(double,%20double,%20int...)">rand</a></strong>(double&nbsp;low,
+        double&nbsp;high,
+        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(int...)">rand</a></strong>(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(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"><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="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/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/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="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#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#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>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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/FloatDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/FloatDataset.html
new file mode 100644
index 0000000..da8e45e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDataListener.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDataListener.html
new file mode 100644
index 0000000..64b9dd8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDataset.html
new file mode 100644
index 0000000..1e49753
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDataset.html
@@ -0,0 +1,814 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>&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>&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#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 content</div>
+</td>
+</tr>
+<tr class="altColor">
+<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="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.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"><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="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#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"><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="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#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"><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="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#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>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>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>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="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#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="altColor">
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html
new file mode 100644
index 0000000..a11e754
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDatasetConnector.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDatasetConnector.html
new file mode 100644
index 0000000..5c3f438
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDynamicDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDynamicDataset.html
new file mode 100644
index 0000000..2b42cc2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDynamicShape.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IDynamicShape.html
new file mode 100644
index 0000000..2127dd0
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IFileConnection.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IFileConnection.html
new file mode 100644
index 0000000..d883e21
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ILazyDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ILazyDataset.html
new file mode 100644
index 0000000..69d29f5
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ILazyDataset.html
@@ -0,0 +1,727 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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">Creating slice 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 slice 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#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"><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="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;primary,
+              <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+              int...&nbsp;axisDims)</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html
new file mode 100644
index 0000000..0147e5a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IMetadataProvider.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IMetadataProvider.html
new file mode 100644
index 0000000..92cb099
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IOperation.html
new file mode 100644
index 0000000..13154f8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IRemoteData.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IRemoteData.html
new file mode 100644
index 0000000..af4d9a3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IndexIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IndexIterator.html
new file mode 100644
index 0000000..4afd94c
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IndexIterator.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></strong></code>
+<div class="block">Class to run over an iterator and visits positions where items in selection dataset are 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/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="altColor">
+<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="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/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="rowColor">
+<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="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>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</a></strong></code>
+<div class="block">Class to run over non-contiguous or fragmented 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/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">Class 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">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">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="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">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="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">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/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>
+</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/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="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>
+<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#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/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/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/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>
+</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/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</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/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset)">BooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that are
+ true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(org.eclipse.january.dataset.IndexIterator,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection,
+                              boolean&nbsp;value)</code>
+<div class="block">Constructor for an iterator over the items of a boolean dataset that match
+ given value</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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegerDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegerDataset.html
new file mode 100644
index 0000000..73a9b99
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegerDataset.html
@@ -0,0 +1,370 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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">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="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#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">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="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#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#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><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="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#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/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="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#poisson(double,%20int...)">poisson</a></strong>(double&nbsp;lam,
+              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#randint(int,%20int,%20int[])">randint</a></strong>(int&nbsp;low,
+              int&nbsp;high,
+              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#random_integers(int,%20int,%20int[])">random_integers</a></strong>(int&nbsp;low,
+                              int&nbsp;high,
+                              int[]&nbsp;shape)</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/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/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="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#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#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/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="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#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"><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">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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegerIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegerIterator.html
new file mode 100644
index 0000000..23556df
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegersIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/IntegersIterator.html
new file mode 100644
index 0000000..3dc82ec
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/InterpolatorUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/InterpolatorUtils.html
new file mode 100644
index 0000000..aed51ef
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDataset.html
new file mode 100644
index 0000000..9a285b8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDatasetBase.html
new file mode 100644
index 0000000..b7074e3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html
new file mode 100644
index 0000000..177dbdc
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyMaths.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyMaths.html
new file mode 100644
index 0000000..e13c131
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html
new file mode 100644
index 0000000..4c47301
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..619ee95
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LinearAlgebra.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LinearAlgebra.html
new file mode 100644
index 0000000..4ffd458
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LongDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/LongDataset.html
new file mode 100644
index 0000000..046f894
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Maths.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Maths.html
new file mode 100644
index 0000000..a9289fa
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/NullIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/NullIterator.html
new file mode 100644
index 0000000..47da4bc
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/NullStorelessUnivariateStatistic.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/NullStorelessUnivariateStatistic.html
new file mode 100644
index 0000000..5d4ff2a
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/NullStorelessUnivariateStatistic.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.NullStorelessUnivariateStatistic (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.NullStorelessUnivariateStatistic (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<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/NullStorelessUnivariateStatistic.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/NullStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
+<li><a href="NullStorelessUnivariateStatistic.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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.NullStorelessUnivariateStatistic" class="title">Uses of Class<br>org.eclipse.january.dataset.NullStorelessUnivariateStatistic</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.NullStorelessUnivariateStatistic</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/NullStorelessUnivariateStatistic.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/NullStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
+<li><a href="NullStorelessUnivariateStatistic.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ObjectDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ObjectDataset.html
new file mode 100644
index 0000000..2a135b4
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html
new file mode 100644
index 0000000..da96fdf
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Addition.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Addition.html
new file mode 100644
index 0000000..e178eec
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Division.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Division.html
new file mode 100644
index 0000000..16db7c8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..9ae9447
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..9c7bccc
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html
new file mode 100644
index 0000000..459736c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Maximum.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Maximum.html
new file mode 100644
index 0000000..c5775f6
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Minimum.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Minimum.html
new file mode 100644
index 0000000..54a19dc
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Multiplication.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Multiplication.html
new file mode 100644
index 0000000..2c2bfd3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Negation.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Negation.html
new file mode 100644
index 0000000..16542a4
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Remainder.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Remainder.html
new file mode 100644
index 0000000..8c2a4f2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Subtraction.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.Subtraction.html
new file mode 100644
index 0000000..423a721
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseBase.html
new file mode 100644
index 0000000..946bfeb
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..3fb2064
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..177728d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..84b720a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..14b9c1a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..dfb9ade
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Operations.html
new file mode 100644
index 0000000..d3aed20
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Outliers.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Outliers.html
new file mode 100644
index 0000000..cbeac5c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/PositionIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/PositionIterator.html
new file mode 100644
index 0000000..befd430
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/RGBDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/RGBDataset.html
new file mode 100644
index 0000000..492fd7f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Random.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Random.html
new file mode 100644
index 0000000..0baee6f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/RunningAverage.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/RunningAverage.html
new file mode 100644
index 0000000..8af0f70
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html
new file mode 100644
index 0000000..6a5b63a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShapeUtils.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShapeUtils.html
new file mode 100644
index 0000000..ab58498
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShortDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/ShortDataset.html
new file mode 100644
index 0000000..bec061e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..37f4454
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SingleItemIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SingleItemIterator.html
new file mode 100644
index 0000000..781e771
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Slice.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Slice.html
new file mode 100644
index 0000000..b0b5a5a
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Slice.html
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>&nbsp;</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">Convert a string to 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">Convert to a 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"><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">Convert from a set of integer arrays to 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">Flip slice direction so 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">Set maximum value of 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">Populate 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>&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.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/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">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/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="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.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.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/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="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">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="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><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/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/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/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="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#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">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>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/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/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/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>
+</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 ND slice from an array of 1D slices</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 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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceIterator.html
new file mode 100644
index 0000000..00e3a48
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>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="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#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#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#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#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#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#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/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/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/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/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/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="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/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="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/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="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/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="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/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/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/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>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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceND.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceND.html
new file mode 100644
index 0000000..774e836
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceND.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>&nbsp;</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">Creating slice 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 slice 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">Flip slice direction in all dimensions so 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/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">Flip slice direction in given dimension so 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/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.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/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">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.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">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/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="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.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/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/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/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/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/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/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="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#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"><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>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="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.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="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#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><a 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>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="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#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>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">Constructor for an iterator over the elements of a sliced dataset</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">Constructor for an iterator over the elements of a sliced dataset</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;oStrides,
+                            int&nbsp;oOffset,
+                            <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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceNDIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/SliceNDIterator.html
new file mode 100644
index 0000000..3ce8fd8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Stats.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/Stats.html
new file mode 100644
index 0000000..257bada
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StrideIterator.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StrideIterator.html
new file mode 100644
index 0000000..3bd7161
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StringDataset.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StringDataset.html
new file mode 100644
index 0000000..3a6e6ff
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StringDatasetBase.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/StringDatasetBase.html
new file mode 100644
index 0000000..a3fe96f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html
new file mode 100644
index 0000000..b2d425d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/class-use/UnaryOperation.html b/apidocs/2.0.1/org/eclipse/january/dataset/class-use/UnaryOperation.html
new file mode 100644
index 0000000..1c21231
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/package-frame.html b/apidocs/2.0.1/org/eclipse/january/dataset/package-frame.html
new file mode 100644
index 0000000..c6df4eb
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/package-frame.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<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="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="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="DiscontiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">DiscontiguousIterator</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="NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset" target="classFrame">NullStorelessUnivariateStatistic</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.0.1/org/eclipse/january/dataset/package-summary.html b/apidocs/2.0.1/org/eclipse/january/dataset/package-summary.html
new file mode 100644
index 0000000..c49ee98
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/package-summary.html
@@ -0,0 +1,810 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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/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">Class to run over an iterator and visits positions where items in selection dataset are true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset">DiscontiguousIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over non-contiguous or fragmented datasets</div>
+</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/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset">NullStorelessUnivariateStatistic</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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">Class to represent a slice through a single dimension of a multi-dimensional dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<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">Class to run over a slice of a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<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">Class to represent a slice through all dimensions of a multi-dimensional dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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="rowColor">
+<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="altColor">
+<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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/package-tree.html b/apidocs/2.0.1/org/eclipse/january/dataset/package-tree.html
new file mode 100644
index 0000000..445d578
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/package-tree.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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.<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></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/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">DiscontiguousIterator</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/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Maths</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset"><span class="strong">NullStorelessUnivariateStatistic</span></a> (implements org.apache.commons.math3.stat.descriptive.<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/dataset/package-use.html b/apidocs/2.0.1/org/eclipse/january/dataset/package-use.html
new file mode 100644
index 0000000..9324e58
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/dataset/package-use.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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">Class to run over an iterator and visits positions where items in selection dataset are 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">Class to represent a slice through a single dimension of a multi-dimensional dataset.</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">Class 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">Class to represent a slice through all dimensions of a multi-dimensional dataset.</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">Class to represent a slice through all dimensions of a multi-dimensional dataset.</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">Class to represent a slice through a single dimension of a multi-dimensional 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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.0.1/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..e7af4a7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataAnalysisObject (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.0.1/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..c9b5f4f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyAsyncSaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.0.1/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..21b5167
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDynamicLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.0.1/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..ce84fdd
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/ILazySaver.html b/apidocs/2.0.1/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..db04a1b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazySaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.0.1/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..41e5a6e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetaLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/IDataAnalysisObject.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/IDataAnalysisObject.html
new file mode 100644
index 0000000..2295fda
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyAsyncSaver.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyAsyncSaver.html
new file mode 100644
index 0000000..d921b7c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyDynamicLoader.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyDynamicLoader.html
new file mode 100644
index 0000000..85278d7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyLoader.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazyLoader.html
new file mode 100644
index 0000000..3070a3b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazySaver.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/ILazySaver.html
new file mode 100644
index 0000000..74cddac
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/class-use/IMetaLoader.html b/apidocs/2.0.1/org/eclipse/january/io/class-use/IMetaLoader.html
new file mode 100644
index 0000000..7b7dbf8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/package-frame.html b/apidocs/2.0.1/org/eclipse/january/io/package-frame.html
new file mode 100644
index 0000000..e2ead18
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<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.0.1/org/eclipse/january/io/package-summary.html b/apidocs/2.0.1/org/eclipse/january/io/package-summary.html
new file mode 100644
index 0000000..79f964b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/package-tree.html b/apidocs/2.0.1/org/eclipse/january/io/package-tree.html
new file mode 100644
index 0000000..bf26166
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/io/package-use.html b/apidocs/2.0.1/org/eclipse/january/io/package-use.html
new file mode 100644
index 0000000..58baaa2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..8faca58
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ARPESMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..6ad79b1
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/AxesMetadata.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AxesMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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;primary,
+              <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+              int...&nbsp;axisDims)</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>&nbsp;</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.60">addAxis</a>(int&nbsp;primary,
+           <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+           int...&nbsp;axisDims)</pre>
+</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.62">refresh</a>(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/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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..b22571a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DimensionMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.0.1/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..3cdfc4a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dirtiable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.0.1/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..550d5ef
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicConnectionInfo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.0.1/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..d9d8145
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicMetadataUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..80924b1
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ErrorMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..e4269a8
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IExtendedMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..c5aa095
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..5c60a4e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MaskMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/Metadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..fdf9867
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.32">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.44">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.47">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.52">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.57">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.70">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.78">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.86">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.90">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.95">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.100">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.105">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.121">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.127">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.132">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.137">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.176">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.181">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.0.1/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..088f50f
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.27">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.55">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.86">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.0.1/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..0fface2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataType (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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;</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..4103938
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OriginMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..940e52d
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PeemMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.0.1/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..35b689c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Reshapeable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.0.1/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..3c40b72
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sliceable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..1ffc384
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StatisticsMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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>&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#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="rowColor">
+<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>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.66">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>
+<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="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.72">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.78">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.84">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.90">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.96">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.102">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.108">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.114">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.121">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.129">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.135">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.141">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.147">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.154">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.160">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.166">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.173">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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/Transposable.html b/apidocs/2.0.1/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..fad9a69
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Transposable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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>Next Class</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>Next Class</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/ARPESMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/ARPESMetadata.html
new file mode 100644
index 0000000..4dc79e2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/AxesMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/AxesMetadata.html
new file mode 100644
index 0000000..f26b7b7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DimensionMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DimensionMetadata.html
new file mode 100644
index 0000000..77ae3a1
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Dirtiable.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Dirtiable.html
new file mode 100644
index 0000000..1046114
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html
new file mode 100644
index 0000000..9925118
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html
new file mode 100644
index 0000000..1c172c6
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/ErrorMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/ErrorMetadata.html
new file mode 100644
index 0000000..fe02d55
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/IExtendedMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/IExtendedMetadata.html
new file mode 100644
index 0000000..5f0a88e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/IMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/IMetadata.html
new file mode 100644
index 0000000..02a76f3
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MaskMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MaskMetadata.html
new file mode 100644
index 0000000..aa681da
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Metadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Metadata.html
new file mode 100644
index 0000000..13f5e8b
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MetadataFactory.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MetadataFactory.html
new file mode 100644
index 0000000..6993daf
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MetadataType.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MetadataType.html
new file mode 100644
index 0000000..5e67017
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/MetadataType.html
@@ -0,0 +1,447 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/OriginMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/OriginMetadata.html
new file mode 100644
index 0000000..da32c00
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/PeemMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/PeemMetadata.html
new file mode 100644
index 0000000..a7d2e84
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Reshapeable.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Reshapeable.html
new file mode 100644
index 0000000..c5c63a1
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Sliceable.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Sliceable.html
new file mode 100644
index 0000000..64bae9e
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/StatisticsMetadata.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/StatisticsMetadata.html
new file mode 100644
index 0000000..1055def
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Transposable.html b/apidocs/2.0.1/org/eclipse/january/metadata/class-use/Transposable.html
new file mode 100644
index 0000000..229ffef
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/package-frame.html b/apidocs/2.0.1/org/eclipse/january/metadata/package-frame.html
new file mode 100644
index 0000000..ea200b2
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/package-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<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>
+</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.0.1/org/eclipse/january/metadata/package-summary.html b/apidocs/2.0.1/org/eclipse/january/metadata/package-summary.html
new file mode 100644
index 0000000..25064e6
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/package-summary.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/package-tree.html b/apidocs/2.0.1/org/eclipse/january/metadata/package-tree.html
new file mode 100644
index 0000000..e3d895c
--- /dev/null
+++ b/apidocs/2.0.1/org/eclipse/january/metadata/package-tree.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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>
+</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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/metadata/package-use.html b/apidocs/2.0.1/org/eclipse/january/metadata/package-use.html
new file mode 100644
index 0000000..f65e441
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/package-frame.html b/apidocs/2.0.1/org/eclipse/january/package-frame.html
new file mode 100644
index 0000000..5db1de7
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<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.0.1/org/eclipse/january/package-summary.html b/apidocs/2.0.1/org/eclipse/january/package-summary.html
new file mode 100644
index 0000000..ce42658
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/package-tree.html b/apidocs/2.0.1/org/eclipse/january/package-tree.html
new file mode 100644
index 0000000..dc6e7a2
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/org/eclipse/january/package-use.html b/apidocs/2.0.1/org/eclipse/january/package-use.html
new file mode 100644
index 0000000..40f5e5a
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<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="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/overview-frame.html b/apidocs/2.0.1/overview-frame.html
new file mode 100644
index 0000000..c1c1f97
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<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.0.1/overview-summary.html b/apidocs/2.0.1/overview-summary.html
new file mode 100644
index 0000000..1510031
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.0.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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/overview-tree.html b/apidocs/2.0.1/overview-tree.html
new file mode 100644
index 0000000..d70b4b5
--- /dev/null
+++ b/apidocs/2.0.1/overview-tree.html
@@ -0,0 +1,650 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Thu Mar 30 04:43:34 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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.<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></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/DiscontiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">DiscontiguousIterator</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/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Maths</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/NullStorelessUnivariateStatistic.html" title="class in org.eclipse.january.dataset"><span class="strong">NullStorelessUnivariateStatistic</span></a> (implements org.apache.commons.math3.stat.descriptive.<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/stat/descriptive/StorelessUnivariateStatistic.html?is-external=true" title="class or interface in org.apache.commons.math3.stat.descriptive">StorelessUnivariateStatistic</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>
+</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>
+</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>
+</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>
+</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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/package-list b/apidocs/2.0.1/package-list
new file mode 100644
index 0000000..e9f2c05
--- /dev/null
+++ b/apidocs/2.0.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.0.1/resources/background.gif b/apidocs/2.0.1/resources/background.gif
new file mode 100644
index 0000000..f471940
--- /dev/null
+++ b/apidocs/2.0.1/resources/background.gif
Binary files differ
diff --git a/apidocs/2.0.1/resources/tab.gif b/apidocs/2.0.1/resources/tab.gif
new file mode 100644
index 0000000..1a73a83
--- /dev/null
+++ b/apidocs/2.0.1/resources/tab.gif
Binary files differ
diff --git a/apidocs/2.0.1/resources/titlebar.gif b/apidocs/2.0.1/resources/titlebar.gif
new file mode 100644
index 0000000..17443b3
--- /dev/null
+++ b/apidocs/2.0.1/resources/titlebar.gif
Binary files differ
diff --git a/apidocs/2.0.1/resources/titlebar_end.gif b/apidocs/2.0.1/resources/titlebar_end.gif
new file mode 100644
index 0000000..3ad78d4
--- /dev/null
+++ b/apidocs/2.0.1/resources/titlebar_end.gif
Binary files differ
diff --git a/apidocs/2.0.1/serialized-form.html b/apidocs/2.0.1/serialized-form.html
new file mode 100644
index 0000000..132477c
--- /dev/null
+++ b/apidocs/2.0.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 Thu Mar 30 04:43:33 EDT 2017 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (The Eclipse January API Documentation)</title>
+<meta name="date" content="2017-03-30">
+<link rel="stylesheet" type="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; 2017. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/DatasetException.html b/apidocs/2.0.1/src-html/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..91a96ac
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.0.1/src-html/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/IMonitor.html b/apidocs/2.0.1/src-html/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/INameable.html b/apidocs/2.0.1/src-html/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..6061a3e
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/MetadataException.html b/apidocs/2.0.1/src-html/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..8b37028
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..8c589cb
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,806 @@
+<!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 (stride != null)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        return new StrideIterator(isize, shape, stride, offset, slice);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return new SliceIterator(shape, size, isize, slice);<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>         * Constructor required for serialisation.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         */<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public AbstractCompoundDataset() {<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 equals(Object obj) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                if (!super.equals(obj)) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        return false;<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>                CompoundDataset other = (CompoundDataset) obj;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                return isize == other.getElementsPerItem();<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 int hashCode() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                return getCompoundStats().getHash(shape);<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 CompoundDataset cast(boolean repeat, int dtype, int isize) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                return (CompoundDataset) super.cast(repeat, dtype, isize);<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 CompoundDataset cast(int dtype) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                return (CompoundDataset) super.cast(dtype);<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>        abstract public AbstractCompoundDataset clone();<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 CompoundDataset flatten() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                return (CompoundDataset) super.flatten();<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 CompoundDataset getBy1DIndex(IntegerDataset index) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                return (CompoundDataset) super.getBy1DIndex(index);<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 CompoundDataset getByBoolean(Dataset selection) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return (CompoundDataset) super.getByBoolean(selection);<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 CompoundDataset getByIndexes(Object... indexes) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                return (CompoundDataset) super.getByIndexes(indexes);<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>        @Override<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        public CompoundDataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                return (CompoundDataset) super.getSlice(mon, start, stop, step);<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>        @Override<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        public CompoundDataset getSlice(IMonitor mon, Slice... slice) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                return (CompoundDataset) super.getSlice(mon, slice);<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>        @Override<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        public CompoundDataset getSlice(IMonitor mon, SliceND slice) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                return (CompoundDataset) super.getSlice(mon, slice);<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>        @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        public CompoundDataset getSlice(int[] start, int[] stop, int[] step) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return (CompoundDataset) super.getSlice(start, stop, step);<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 CompoundDataset getSlice(Slice... slice) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return (CompoundDataset) super.getSlice(slice);<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 CompoundDataset getSlice(SliceND slice) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                return (CompoundDataset) super.getSlice(slice);<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>        @Override<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        abstract public AbstractCompoundDataset getSlice(SliceIterator iterator);<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 CompoundDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                return (CompoundDataset) super.getSliceView(start, stop, step);<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 CompoundDataset getSliceView(Slice... slice) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                return (CompoundDataset) super.getSliceView(slice);<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 CompoundDataset getSliceView(SliceND slice) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                return (CompoundDataset) super.getSliceView(slice);<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 CompoundDataset getTransposedView(int... axes) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                return (CompoundDataset) super.getTransposedView(axes);<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>        abstract public AbstractCompoundDataset getView(boolean deepCopyMetadata);<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 CompoundDataset getBroadcastView(int... broadcastShape) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                return (CompoundDataset) super.getBroadcastView(broadcastShape);<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 CompoundDataset ifloorDivide(Object o) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return (CompoundDataset) super.ifloorDivide(o);<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 CompoundDataset reshape(int... shape) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return (CompoundDataset) super.reshape(shape);<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 CompoundDataset setSlice(Object obj, int[] start, int[] stop, int[] step) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                return (CompoundDataset) super.setSlice(obj, start, stop, step);<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 CompoundDataset setSlice(Object object, Slice... slice) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                return (CompoundDataset) super.setSlice(object, slice);<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 CompoundDataset sort(Integer axis) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                throw new UnsupportedOperationException("Cannot sort dataset");<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 CompoundDataset squeezeEnds() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return (CompoundDataset) super.squeezeEnds();<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 CompoundDataset squeeze() {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                return (CompoundDataset) super.squeeze();<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 CompoundDataset squeeze(boolean onlyFromEnd) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return (CompoundDataset) super.squeeze(onlyFromEnd);<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 CompoundDataset swapAxes(int axis1, int axis2) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                return (CompoundDataset) super.swapAxes(axis1, axis2);<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>        @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public synchronized CompoundDataset synchronizedCopy() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                return clone();<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public CompoundDataset transpose(int... axes) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return (CompoundDataset) super.transpose(axes);<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>        /**<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         * @since 2.0<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         */<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        abstract protected double getFirstValue();<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        abstract protected double getFirstValue(final int i);<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        abstract protected double getFirstValue(final int i, final int j);<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...pos);<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 boolean getBoolean() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                return getFirstValue() != 0;<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 boolean getBoolean(final int i) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return getFirstValue(i) != 0;<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 boolean getBoolean(final int i, final int j) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return getFirstValue(i, j) != 0;<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 boolean getBoolean(final int... pos) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return getFirstValue(pos) != 0;<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public byte getByte() {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return (byte) getFirstValue();<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 byte getByte(final int i) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return (byte) getFirstValue(i);<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 byte getByte(final int i, final int j) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return (byte) getFirstValue(i, j);<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 byte getByte(final int... pos) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return (byte) getFirstValue(pos);<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>        @Override<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        public short getShort() {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return (short) getFirstValue();<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>        @Override<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public short getShort(final int i) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                return (short) getFirstValue(i);<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        public short getShort(final int i, final int j) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                return (short) getFirstValue(i, j);<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>        @Override<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        public short getShort(final int... pos) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                return (short) getFirstValue(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>        @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        public int getInt() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                return (int) getFirstValue();<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>        @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        public int getInt(final int i) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                return (int) getFirstValue(i);<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>        @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        public int getInt(final int i, final int j) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                return (int) getFirstValue(i, 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>        @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public int getInt(final int... pos) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return (int) getFirstValue(pos);<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 long getLong() {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return (long) getFirstValue();<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 long getLong(final int i) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return (long) getFirstValue(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>        @Override<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public long getLong(final int i, final int j) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return (long) getFirstValue(i, j);<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 long getLong(final int... pos) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return (long) getFirstValue(pos);<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 float getFloat() {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return (float) getFirstValue();<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 float getFloat(final int i) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return (float) getFirstValue(i);<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 float getFloat(final int i, final int j) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return (float) getFirstValue(i, j);<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 float getFloat(final int... pos) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return (float) getFirstValue(pos);<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() {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return getFirstValue();<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) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return getFirstValue(i);<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 i, final int j) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return getFirstValue(i, j);<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 double getDouble(final int... pos) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return getFirstValue(pos);<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 void getDoubleArray(final double[] darray) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                getDoubleArrayAbs(getFirst1DIndex(), darray);<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 void getDoubleArray(final double[] darray, final int i) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                getDoubleArrayAbs(get1DIndex(i), darray);<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 void getDoubleArray(final double[] darray, final int i, final int j) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                getDoubleArrayAbs(get1DIndex(i, j), darray);<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 void getDoubleArray(final double[] darray, final int... pos) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                getDoubleArrayAbs(get1DIndex(pos), darray);<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>         * @since 2.0<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        @SuppressWarnings("unchecked")<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        protected StatisticsMetadata&lt;double[]&gt; getCompoundStats() {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                StatisticsMetadata&lt;double[]&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                if (md == null || md.isDirty()) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        md = new StatisticsMetadataImpl&lt;double[]&gt;();<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        md.initialize(this);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        setMetadata(md);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return md;<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 IntegerDataset argMax(int axis, boolean... ignoreInvalids) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                logger.error("Cannot compare compound numbers");<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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 IntegerDataset argMin(int axis, boolean... ignoreInvalids) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                logger.error("Cannot compare compound numbers");<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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 Number max(boolean... ignoreInvalids) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                logger.error("Cannot compare compound numbers");<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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 CompoundDataset max(int axis, boolean... ignoreInvalids) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                logger.error("Cannot compare compound numbers");<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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>        @Override<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public Number min(boolean... ignoreInvalids) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                logger.error("Cannot compare compound numbers");<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public CompoundDataset min(int axis, boolean... ignoreInvalids) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                logger.error("Cannot compare compound numbers");<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int[] maxPos(boolean... ignoreNaNs) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                logger.error("Cannot compare compound numbers");<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>        @Override<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        public int[] minPos(boolean... ignoreNaNs) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                logger.error("Cannot compare compound numbers");<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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>        @Override<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public CompoundDataset peakToPeak(int axis, boolean... ignoreInvalids) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                logger.error("Cannot compare compound numbers");<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<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[] maxItem() {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return getCompoundStats().getMaximum();<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 double[] minItem() {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return getCompoundStats().getMinimum();<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 Object mean(boolean... ignoreInvalids) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return getCompoundStats().getMean();<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public CompoundDataset mean(int axis, boolean... ignoreInvalids) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (CompoundDataset) super.mean(axis, ignoreInvalids);<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 CompoundDataset product(int axis, boolean... ignoreInvalids) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (CompoundDataset) super.product(axis, ignoreInvalids);<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 CompoundDataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (CompoundDataset) super.rootMeanSquare(axis, ignoreInvalids);<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public CompoundDataset stdDeviation(int axis) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return (CompoundDataset) super.stdDeviation(axis, false);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public CompoundDataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return (CompoundDataset) super.stdDeviation(axis, isWholePopulation, ignoreInvalids);<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 sum(boolean... ignoreInvalids) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return getCompoundStats().getSum();<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public CompoundDataset sum(int axis, boolean... ignoreInvalids) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return (CompoundDataset) super.sum(axis, ignoreInvalids);<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>        @Override<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                return getCompoundStats().getVariance(isWholePopulation, ignoreInvalids);<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 CompoundDataset variance(int axis) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                return (CompoundDataset) super.variance(axis, false);<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 CompoundDataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                return (CompoundDataset) super.variance(axis, isWholePopulation, ignoreInvalids);<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 double rootMeanSquare(boolean... ignoreInvalids) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                StatisticsMetadata&lt;double[]&gt; stats = getCompoundStats();<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>                double[] mean = stats.getMean(ignoreInvalids);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                double result = 0;<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        double m = mean[i];<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result += m * m;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return Math.sqrt(result + stats.getVariance(true));<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>        /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>         * @return error<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         */<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        private CompoundDataset getInternalError() {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                ILazyDataset led = super.getErrors();<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                if (led == null)<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        return null;<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>                Dataset ed = null;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                try {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                } catch (DatasetException e) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        logger.error("Could not get data from lazy dataset", e);<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>                CompoundDataset ced; // ensure it has the same number of elements<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                if (!(ed instanceof CompoundDataset) || ed.getElementsPerItem() != isize) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        ced = new CompoundDoubleDataset(isize, true, ed);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                } else {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        ced = (CompoundDataset) ed;<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>                if (led != ced) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        setErrors(ced); // set back<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                return ced;<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public CompoundDataset getErrors() {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                CompoundDataset ed = getInternalError();<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                if (ed == null)<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        return null;<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>                return ed.getBroadcastView(shape);<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 double getError(final int i) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                return calcError(getInternalErrorArray(true, i));<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 double getError(final int i, final int j) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                return calcError(getInternalErrorArray(true, i, j));<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        public double getError(final int... pos) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                return calcError(getInternalErrorArray(true, pos));<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>        private double calcError(double[] es) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                if (es == null)<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        return 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>                // assume elements are independent<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                double e = 0;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        e += es[k];<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 Math.sqrt(e);<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 double[] getErrorArray(final int i) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return getInternalErrorArray(false, i);<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 double[] getErrorArray(final int i, final int j) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                return getInternalErrorArray(false, i, j);<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>        @Override<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        public double[] getErrorArray(final int... pos) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return getInternalErrorArray(false, pos);<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>        private Dataset getInternalError(final boolean squared) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                Dataset sed = squared ? getInternalSquaredError() : getInternalError();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                if (sed == null)<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return null;<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>                return sed.getBroadcastView(shape);<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>        private double[] getInternalErrorArray(final boolean squared, final int i) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                Dataset sed = getInternalError(squared);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                if (sed == null)<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        return null;<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>                double[] es;<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                Arrays.fill(es, es[0]);<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>                        es = new double[isize];<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i));<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return es;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        private double[] getInternalErrorArray(final boolean squared, final int i, final int j) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                Dataset sed = getInternalError(squared);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                if (sed == null)<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        return null;<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                double[] es;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i, j);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                Arrays.fill(es, es[0]);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                } else {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        es = new double[isize];<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i, j));<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return es;<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>        private double[] getInternalErrorArray(final boolean squared, final int... pos) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                Dataset sed = getInternalError(squared);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                if (sed == null)<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        return null;<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>                double[] es = new double[isize];<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(pos);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                Arrays.fill(es, es[0]);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                } else {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        es = new double[isize];<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(pos));<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                }<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                return es;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..19ae978
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,1962 @@
+<!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(0));<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>                if (axis1 &lt; 0)<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        axis1 += rank;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                if (axis2 &lt; 0)<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        axis2 += rank;<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>                if (axis1 &lt; 0 || axis2 &lt; 0 || axis1 &gt;= rank || axis2 &gt;= rank) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        logger.error("Axis value invalid - out of range");<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        throw new IllegalArgumentException("Axis value invalid - out of range");<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>                if (rank == 1 || axis1 == axis2) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return this;<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>                int[] axes = new int[rank];<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        axes[i] = i;<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>                axes[axis1] = axis2;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                axes[axis2] = axis1;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return getTransposedView(axes);<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>        private boolean isContiguous() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                if (stride == null)<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                        return true;<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>                if (offset != 0)<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        return false;<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>                int s = getElementsPerItem();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                for (int j = getRank() - 1; j &gt;= 0; j--) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        if (stride[j] != s) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                return false;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        s *= shape[j];<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>                return true;<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 Dataset flatten() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                if (!isContiguous()) { // need to make a copy if not contiguous<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        return clone().flatten();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return reshape(size);<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>         * Fill dataset from object at depth dimension<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @param obj<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param depth<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param pos position<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         */<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        protected void fillData(Object obj, final int depth, final int[] pos) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                if (obj == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        int dtype = getDType();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        if (dtype == FLOAT32)<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                set(Float.NaN, pos);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        else if (dtype == FLOAT64)<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                set(Double.NaN, pos);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        return;<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>                Class&lt;?&gt; clazz = obj.getClass();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        int l = jl.size();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                Object lo = jl.get(i);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                fillData(lo, depth + 1, pos);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                pos[depth]++;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        pos[depth] = 0;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                } else if (clazz.isArray()) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                        int l = Array.getLength(obj);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        if (clazz.equals(odata.getClass())) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                System.arraycopy(obj, 0, odata, get1DIndex(pos), l);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                        } else if (clazz.getComponentType().isPrimitive()) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                        set(Array.get(obj, i), pos);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                                        pos[depth]++;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                pos[depth] = 0;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        } else {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                        fillData(Array.get(obj, i), depth + 1, pos);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        pos[depth]++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                pos[depth] = 0;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                } else if (obj instanceof IDataset) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                        boolean[] a = new boolean[shape.length];<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        for (int i = depth; i &lt; a.length; i++)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                a[i] = true;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        setSlice(obj, getSliceIteratorFromAxes(pos, a));<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                } else {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        set(obj, pos);<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>        @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public IndexIterator getIterator(final boolean withPosition) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                if (stride != null) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        return base.getSize() == 1  ? (withPosition ? new PositionIterator(offset, shape) :<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                new SingleItemIterator(offset, size)) : new StrideIterator(shape, stride, offset);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                return withPosition ? new ContiguousIteratorWithPosition(shape, size) : new ContiguousIterator(size);<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 IndexIterator getIterator() {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                return getIterator(false);<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 PositionIterator getPositionIterator(final int... axes) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return new PositionIterator(shape, axes);<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 IndexIterator getSliceIterator(final int[] start, final int[] stop, final int[] step) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return getSliceIterator(new SliceND(shape, start, stop, step));<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>         * @param slice<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         */<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        public IndexIterator getSliceIterator(SliceND slice) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        return new NullIterator(shape, slice.getShape());<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                if (stride != null)<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return new StrideIterator(getElementsPerItem(), shape, stride, offset, slice);<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return new SliceIterator(shape, size, slice);<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>        @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        public SliceIterator getSliceIteratorFromAxes(final int[] pos, boolean[] axes) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int rank = shape.length;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                int[] start;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                int[] stop = new int[rank];<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                int[] step = new int[rank];<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>                if (pos == null) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        start = new int[rank];<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                } else if (pos.length == rank) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        start = pos.clone();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                } else {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        throw new IllegalArgumentException("pos array length is not equal to rank of dataset");<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                if (axes == null) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        axes = new boolean[rank];<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        Arrays.fill(axes, true);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                } else if (axes.length != rank) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        throw new IllegalArgumentException("axes array length is not equal to rank of dataset");<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>                for (int i = 0; i &lt; rank; i++) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        if (axes[i]) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                stop[i] = shape[i];<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        } else {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                stop[i] = start[i] + 1;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        step[i] = 1;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return (SliceIterator) getSliceIterator(start, stop, step);<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 BooleanIterator getBooleanIterator(Dataset choice) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                return getBooleanIterator(choice, true);<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 BooleanIterator getBooleanIterator(Dataset choice, boolean value) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return new BooleanIterator(getIterator(), choice, value);<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 Dataset getByBoolean(Dataset selection) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                checkCompatibility(selection);<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>                final int length = ((Number) selection.sum()).intValue();<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                final int is = getElementsPerItem();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @SuppressWarnings("deprecation")<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                Dataset r = DatasetFactory.zeros(is, new int[] { length }, getDType());<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                BooleanIterator biter = getBooleanIterator(selection);<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>                int i = 0;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                while (biter.hasNext()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        r.setObjectAbs(i, getObjectAbs(biter.index));<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        i += is;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return r;<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 Dataset getBy1DIndex(IntegerDataset index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                final int is = getElementsPerItem();<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @SuppressWarnings("deprecation")<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                final Dataset r = DatasetFactory.zeros(is, index.getShape(), getDType());<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                final IntegerIterator iter = new IntegerIterator(index, size, is);<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>                while (iter.hasNext()) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        r.setObjectAbs(i, getObjectAbs(iter.index));<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        i += is;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return r;<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>        @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        public Dataset getByIndexes(final Object... indexes) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                final int is = getElementsPerItem();<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                @SuppressWarnings("deprecation")<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                final Dataset r = DatasetFactory.zeros(is, iter.getShape(), getDType());<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                final int[] pos = iter.getPos();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                int i = 0;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                while (iter.hasNext()) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        r.setObjectAbs(i, getObject(pos));<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        i += is;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return r;<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public Class&lt;?&gt; getElementClass() {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return DTypeUtils.getElementClass(getDType());<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 boolean hasFloatingPointElements() {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                Class&lt;?&gt; cls = getElementClass();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                return cls == Float.class || cls == Double.class;<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 int getElementsPerItem() {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                return DTypeUtils.getElementsPerItem(getDType());<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 int getItemBytes() {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return DTypeUtils.getItemBytes(getDType(), getElementsPerItem());<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 String getName() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return name;<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 void setName(final String name) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                this.name = name;<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 int getSize() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return size;<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 int[] getShape() {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                // make a copy of the dimensions data, and put that out<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                if (shape == null) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        logger.warn("Shape is null!!!");<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        return new int[] {};<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return shape.clone();<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>        @Override<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public int getRank() {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return shape == null ? 0 : shape.length;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public int getNbytes() {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                return getSize() * getItemBytes();<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>         * Check for -1 placeholder in shape and replace if necessary<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param shape<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @param size<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         */<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        private void checkShape(int[] shape, int size) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                int rank = shape.length;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                int found = -1;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int nsize = 1;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        int d = shape[i];<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        if (d == -1) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                if (found == -1) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                        found = i;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                } else {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                        logger.error("Can only have one -1 placeholder in shape");<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                        throw new IllegalArgumentException("Can only have one -1 placeholder in shape");<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                }<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        } else {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                nsize *= d;<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>                if (found &gt;= 0) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                        shape[found] = size/nsize;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                } else if (nsize != size &amp;&amp; !(rank == 0 &amp;&amp; size == 0)) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        logger.error("New shape is not same size as old shape");<a name="line.575"></a>
+<span class="sourceLineNo">576</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.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>        @Override<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        public void setShape(final int... shape) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                int[] nshape = shape.clone();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                checkShape(nshape, size);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                if (Arrays.equals(this.shape, nshape)) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        return;<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>                if (stride != null) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        // the only compatible shapes are ones where new dimensions are factors of old dimensions<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        // or are combined adjacent old dimensions <a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        int[] oshape = this.shape;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        int orank = oshape.length;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        int nrank = nshape.length;<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        int diff = nrank - orank;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        int[] nstride = new int[nrank];<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        boolean ones = true;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        // work forwards for broadcasting cases<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        for (int i = 0, j = 0; i &lt; orank || j &lt; nrank;) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                if (j &gt;= diff &amp;&amp; i &lt; orank &amp;&amp; j &lt; nrank &amp;&amp; oshape[i] == nshape[j]) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                        nstride[j++] = stride[i++];<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                } else if (j &lt; nrank &amp;&amp; nshape[j] == 1) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        nstride[j++] = 0;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                } else if (i &lt; orank &amp;&amp; oshape[i] == 1) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        i++;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                } else {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        if (j &lt; nrank)<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                                j++;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                        if (i &lt; orank)<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                                i++;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                        ones = false;<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>                        if (!ones) { // not just ones differ in shapes<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                int[] ostride = stride;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                int ob = 0;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                int oe = 1;<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                int nb = 0;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                int ne = 1;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                while (ob &lt; orank &amp;&amp; nb &lt; nrank) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                        int ol = oshape[ob];<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                        int nl = nshape[nb];<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                        <a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                        if (nl &lt; ol) { // find group of shape dimensions that form common size<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                                        if (ne == nrank) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                                break;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                                        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                                        nl *= nshape[ne++];<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                } while (nl &lt; ol);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                                if (nl != ol) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                                }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                                int on = ne - 1;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                                while (nshape[on] == 1) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                                        on--;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                                }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                                nstride[on] = ostride[ob];<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                                for (int n = on - 1; n &gt;= nb; n--) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                                        if (nshape[n] == 1)<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                                                continue;<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                                        nstride[n] = nshape[on] * nstride[on];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                                        on = n;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                                }<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                        } else if (ol &lt; nl) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                                        if (oe == orank) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                                                break;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                                        }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                                        ol *= oshape[oe++];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                } while (ol &lt; nl);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                if (nl != ol) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                }<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                int oo = oe - 1;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                while (oshape[oo] == 1) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                        oo--;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                int os = ostride[oo];<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                for (int o = oo - 1; o &gt;= ob; o--) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                        if (oshape[o] == 1)<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                                                continue;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                        if (ostride[o] != oshape[oo] * ostride[oo]) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                                                logger.error("Subshape cannot be a non-contiguous view");<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                                                throw new IllegalArgumentException("Subshape cannot be a non-contiguous view");<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                                        oo = o;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                nstride[nb] = os;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        } else {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                                nstride[nb] = ostride[ob];<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>                                        ob = oe++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        nb = ne++;<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>                        stride = nstride;<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>                setDirty();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                if (this.shape != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        reshapeMetadata(this.shape, nshape);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        this.shape = nshape;<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>        @Override<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        public int[] getShapeRef() {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return shape;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public int getOffset() {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                return offset;<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 int[] getStrides() {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                return stride;<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 Serializable getBuffer() {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                return odata;<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 void overrideInternal(Serializable buffer, int... shape) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                if (buffer != null) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        odata = buffer;<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        setData();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        setDirty();<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>                if (shape != null) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        this.shape = shape.clone();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        size = ShapeUtils.calcSize(this.shape);<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>        /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>         * Create a stride array from dataset<a name="line.728"></a>
+<span class="sourceLineNo">729</span>         * @param a dataset<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * @param offset output offset<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         * @return new strides<a name="line.731"></a>
+<span class="sourceLineNo">732</span>         */<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public static int[] createStrides(Dataset a, final int[] offset) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                return createStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), offset);<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>         * Create a stride array from dataset<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * @param isize<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @param shape<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         * @param oStride original stride<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         * @param offset output offset<a name="line.743"></a>
+<span class="sourceLineNo">744</span>         * @return new strides<a name="line.744"></a>
+<span class="sourceLineNo">745</span>         */<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public static int[] createStrides(final int isize, final int[] shape, final int[] oStride, final int oOffset, final int[] offset) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                int rank = shape.length;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                final int[] stride;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                if (oStride == null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        offset[0] = 0;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        stride = new int[rank];<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        int s = isize;<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                stride[j] = s;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                s *= shape[j];<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        }<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                } else {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        offset[0] = oOffset;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        stride = oStride.clone();<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                return stride;<a name="line.761"></a>
+<span class="sourceLineNo">762</span>        }<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>         * Create a stride array from slice information and a dataset<a name="line.765"></a>
+<span class="sourceLineNo">766</span>         * @param slice<a name="line.766"></a>
+<span class="sourceLineNo">767</span>         * @param a dataset<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         * @param stride output stride<a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * @param offset output offset<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         * @return new shape<a name="line.770"></a>
+<span class="sourceLineNo">771</span>         */<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        public static int[] createStrides(final SliceND slice, final Dataset a, final int[] stride, final int[] offset) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                return createStrides(slice, a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), stride, offset);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        }<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>         * Create a stride array from slice and dataset information<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         * @param slice<a name="line.778"></a>
+<span class="sourceLineNo">779</span>         * @param isize<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         * @param shape<a name="line.780"></a>
+<span class="sourceLineNo">781</span>         * @param oStride original stride<a name="line.781"></a>
+<span class="sourceLineNo">782</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @param stride output stride<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @param offset output offset<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         * @return new shape<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         */<a name="line.786"></a>
+<span class="sourceLineNo">787</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.787"></a>
+<span class="sourceLineNo">788</span>                int[] lstart = slice.getStart();<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                int[] lstep = slice.getStep();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                int[] newShape = slice.getShape();<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                int rank = shape.length;<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                if (oStride == null) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                        int s = isize;<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        offset[0] = 0;<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                stride[j] = s * lstep[j];<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                offset[0] += s * lstart[j];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                s *= shape[j];<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                } else {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        offset[0] = oOffset;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                int s = oStride[j];<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                stride[j] = lstep[j] * s;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                offset[0] += lstart[j] * s;<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><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                return newShape;<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>        @Override<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        public Dataset getBroadcastView(int... broadcastShape) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                AbstractDataset view = getView(true);<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                <a name="line.816"></a>
+<span class="sourceLineNo">817</span>                if (!Arrays.equals(shape, broadcastShape)) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapesToMax(broadcastShape, shape);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        view.setShape(nShapes.get(0));<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        view.stride = BroadcastUtils.createBroadcastStrides(view, broadcastShape);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        view.base = this;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        view.shape = broadcastShape.clone();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        view.size = ShapeUtils.calcSize(broadcastShape);<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (view.name == null || view.name.isEmpty()) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                view.name = "Broadcast from " + Arrays.toString(shape);<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        } else {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                view.name = "Broadcast of " + view.name + " from " + Arrays.toString(shape);<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 view;<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>        @Override<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        public Dataset getSliceView(final int[] start, final int[] stop, final int[] step) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                return getSliceView(new SliceND(shape, start, stop, step));<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>        @Override<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        public Dataset getSliceView(Slice... slice) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                if (slice == null || slice.length == 0) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        return getView(true);<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>                return getSliceView(new SliceND(shape, slice));<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        }<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 a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param slice<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return slice view<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public Dataset getSliceView(SliceND slice) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                if (slice.isAll()) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        return getView(true);<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>                final int rank = shape.length;<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                int[] sStride = new int[rank];<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                int[] sOffset = new int[1];<a name="line.860"></a>
+<span class="sourceLineNo">861</span><a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sShape = createStrides(slice, this, sStride, sOffset);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        <a name="line.863"></a>
+<span class="sourceLineNo">864</span>                AbstractDataset s = getView(false);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.shape = sShape;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.size = ShapeUtils.calcSize(sShape);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                s.stride = sStride;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                s.offset = sOffset[0];<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                s.base = this;<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                s.metadata = copyMetadata();<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                s.sliceMetadata(true, slice);<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>                s.setDirty();<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                s.setName(name + BLOCK_OPEN + slice + BLOCK_CLOSE);<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                return s;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        }<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>         * Get flattened view index of given position <a name="line.881"></a>
+<span class="sourceLineNo">882</span>         * @param pos<a name="line.882"></a>
+<span class="sourceLineNo">883</span>         *            the integer array specifying the n-D position<a name="line.883"></a>
+<span class="sourceLineNo">884</span>         * @return the index on the flattened dataset<a name="line.884"></a>
+<span class="sourceLineNo">885</span>         */<a name="line.885"></a>
+<span class="sourceLineNo">886</span>        private int getFlat1DIndex(final int[] pos) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                final int imax = pos.length;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                if (imax == 0) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        return 0;<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>                return get1DIndexFromShape(pos);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        }<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>         * @since 2.0<a name="line.896"></a>
+<span class="sourceLineNo">897</span>         */<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        protected int getFirst1DIndex() {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                if (shape == null) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                return stride == null ? 0 : offset;<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>        @Override<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public int get1DIndex(final int... n) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (n.length == 0 &amp;&amp; shape.length == 0)<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        return offset;<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return stride == null ? get1DIndexFromShape(n) : get1DIndexFromStrides(n);<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>        private static void throwAIOOBException(int i, int s, int d) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                throw new ArrayIndexOutOfBoundsException("Index (" + i + ") out of range [-" + s + "," + s<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                + "] in dimension " + d);<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>        /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param i<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @return the index on the data array corresponding to that location<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        protected int get1DIndex(int i) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (shape == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                if (shape.length &gt; 1) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        logger.error("This dataset is not 1D but was addressed as such");<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        throw new UnsupportedOperationException("This dataset is not 1D but was addressed as such");<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                if (i &lt; 0) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        i += shape[0];<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                return stride == null ? i : i*stride[0] + offset;<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>         * @param i<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * @param j<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @return the index on the data array corresponding to that location<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         */<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        protected int get1DIndex(int i, int j) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                if (shape == null) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                }<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (shape.length != 2) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        logger.error("This dataset is not 2D but was addressed as such");<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        throw new UnsupportedOperationException("This dataset is not 2D but was addressed as such");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                if (i &lt; 0) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        i += shape[0];<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                if (j &lt; 0) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        j += shape[1];<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                if (j &lt; 0 || j &gt;= shape[1]) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        throwAIOOBException(i, shape[1], 1);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                return stride == null ? i*shape[1] + j : i*stride[0] + j*stride[1] + offset;<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>        protected int get1DIndexFromShape(final int[] n) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                return get1DIndexFromShape(shape, n);<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 static int get1DIndexFromShape(final int[] shape, final int[] n) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                if (shape == null) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                final int rank = shape.length;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (rank != n.length) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        logger.error(errMsg);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(errMsg);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                int index = 0;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        final int si = shape[i];<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        int ni = n[i];<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                        if (ni &lt; 0) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                ni += si;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        if (ni &lt; 0 || ni &gt;= si) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                throwAIOOBException(ni, si, i);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        index = index * si + ni;<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>                return index;<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>        private int get1DIndexFromStrides(final int[] n) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                return get1DIndexFromStrides(shape, stride, offset, n);<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        private static int get1DIndexFromStrides(final int[] shape, final int[] stride, final int offset, final int[] n) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                if (shape == null) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                final int rank = shape.length;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                if (rank != n.length) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        logger.error(errMsg);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        throw new IllegalArgumentException(errMsg);<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                int index = offset;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final int st = stride[i];<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (st != 0) { // not broadcasted<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                final int si = shape[i];<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                int ni = n[i];<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                if (ni &lt; 0) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        ni += si;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                if (ni &lt; 0 || ni &gt;= si) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        throwAIOOBException(ni, si, i);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                index += st * ni;<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 index;<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 int[] getNDPosition(final int n) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (isIndexInRange(n)) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        throw new IllegalArgumentException("Index provided " + n<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        + "is larger then the size of the containing array");<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span><a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                return stride == null ? ShapeUtils.getNDPositionFromShape(n, shape) : getNDPositionFromStrides(n);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        private boolean isIndexInRange(final int n) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                if (stride == null) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        return n &gt;= size;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                return n &gt;= getBufferLength();<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>        /**<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * @return entire buffer length<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         */<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        abstract protected int getBufferLength();<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        private int[] getNDPositionFromStrides(int n) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                n -= offset;<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                int rank = shape.length;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                if (rank == 1) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        return new int[] { n / stride[0] };<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>                int[] output = new int[rank];<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                int i = 0;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (i != n) { // TODO find more efficient way than this exhaustive search<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        int j = rank - 1;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        for (; j &gt;= 0; j--) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                output[j]++;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                i += stride[j];<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                if (output[j] &gt;= shape[j]) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                        output[j] = 0;<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                        i -= shape[j] * stride[j];<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                } else {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        break;<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>                        if (j == -1) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                logger.error("Index was not found in this strided dataset");<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException("Index was not found in this strided dataset");<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>                return output;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>        }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        @Override<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        public int checkAxis(int axis) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                return checkAxis(shape.length, axis);<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>        /**<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>         * Check that axis is in range [-rank,rank)<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>         * <a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         * @param rank<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @param axis<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @return sanitized axis in range [0, rank)<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         */<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        protected static int checkAxis(int rank, int axis) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                if (axis &lt; 0) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        axis += rank;<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>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                        throw new IndexOutOfBoundsException("Axis " + axis + " given is out of range [0, " + rank + ")");<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                }<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                return axis;<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>        protected static final char BLOCK_OPEN = '[';<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        protected static final char BLOCK_CLOSE = ']';<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        @Override<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>        public String toString() {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                return toString(false);<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>        @Override<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>        public String toString(boolean showData) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                final int rank = shape == null ? 0 : shape.length;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                final StringBuilder out = new StringBuilder();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                if (DTypeUtils.isDTypeElemental(getDType())) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                        out.append("Dataset ");<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                } else {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        out.append("Compound dataset (");<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        out.append(getElementsPerItem());<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        out.append(") ");<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>                if (!showData) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                out.append("'");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                out.append(name);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                out.append("' has shape ");<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                        } else {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                out.append("shape is ");<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>                        out.append(BLOCK_OPEN);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        if (rank &gt; 0) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                out.append(shape[0]);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                        for (int i = 1; i &lt; rank; i++) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                out.append(", " + shape[i]);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        out.append(BLOCK_CLOSE);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        return out.toString();<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>                if (size == 0) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        return out.toString();<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>                if (rank &gt; 0) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        int[] pos = new int[rank];<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        final StringBuilder lead = new StringBuilder();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        printBlocks(out, lead, 0, pos);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                } else {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        out.append(getString());<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                }<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                return out.toString();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        }<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>         * Limit to strings output via the toString() method<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         */<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        private static int maxStringLength = 120;<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>         * Set maximum line length for toString() method<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * @param maxLineLength<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         */<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public static void setMaxLineLength(int maxLineLength) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                maxStringLength = maxLineLength;<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        }<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>         * @return maximum line length for toString() method<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>         */<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>        public static int getMaxLineLength() {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                return maxStringLength;<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        }<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>         * Limit to number of sub-blocks output via the toString() method<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         */<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>        private static final int MAX_SUBBLOCKS = 6;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        private final static String SEPARATOR = ",";<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        private final static String SPACE = " ";<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        private final static String ELLIPSIS = "...";<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        private final static String NEWLINE = "\n";<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>         * Make a line of output for last dimension of dataset<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         * <a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param start<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @return line<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         */<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        private StringBuilder makeLine(final int end, final int... start) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                StringBuilder line = new StringBuilder();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                final int[] pos;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                if (end &gt;= start.length) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        pos = Arrays.copyOf(start, end + 1);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                } else {<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        pos = start;<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                pos[end] = 0;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                line.append(BLOCK_OPEN);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                line.append(getString(pos));<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final int length = shape[end];<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                // trim elements printed if length exceed estimate of maximum elements<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                int excess = length - maxStringLength / 3; // space + number + separator<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                if (excess &gt; 0) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        int index = (length - excess) / 2;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        for (int y = 1; y &lt; index; y++) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                line.append(SEPARATOR + SPACE);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                pos[end] = y;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                line.append(getString(pos));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        index = (length + excess) / 2;<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        for (int y = index; y &lt; length; y++) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                line.append(SEPARATOR + SPACE);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                pos[end] = y;<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                line.append(getString(pos));<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                } else {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        for (int y = 1; y &lt; length; y++) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                line.append(SEPARATOR + SPACE);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                pos[end] = y;<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                line.append(getString(pos));<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>                line.append(BLOCK_CLOSE);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                // trim string down to limit<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                excess = line.length() - maxStringLength - ELLIPSIS.length() - 1;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                if (excess &gt; 0) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        int index = line.substring(0, (line.length() - excess) / 2).lastIndexOf(SEPARATOR) + 2;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        StringBuilder out = new StringBuilder(line.subSequence(0, index));<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        out.append(ELLIPSIS + SEPARATOR);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        index = line.substring((line.length() + excess) / 2).indexOf(SEPARATOR) + (line.length() + excess) / 2 + 1;<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        out.append(line.subSequence(index, line.length()));<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        return out;<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 line;<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>        /**<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>         * recursive method to print blocks<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>         */<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>        private void printBlocks(final StringBuilder out, final StringBuilder lead, final int level, final int[] pos) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                if (out.length() &gt; 0) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        char last = out.charAt(out.length() - 1);<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        if (last != BLOCK_OPEN) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                out.append(lead);<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>                final int end = getRank() - 1;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                if (level != end) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                        out.append(BLOCK_OPEN);<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        int length = shape[level];<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span><a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        // first sub-block<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        pos[level] = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        StringBuilder newlead = new StringBuilder(lead);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        newlead.append(SPACE);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        if (length &lt; 2) { // escape<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                out.append(BLOCK_CLOSE);<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                return;<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>                        out.append(SEPARATOR + NEWLINE);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        for (int i = level + 1; i &lt; end; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                out.append(NEWLINE);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                        }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span><a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        // middle sub-blocks<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        if (length &lt; MAX_SUBBLOCKS) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                for (int x = 1; x &lt; length - 1; x++) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        pos[level] = x;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        if (end &lt;= level + 1) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                        } else {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                        }<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        } else {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                final int excess = length - MAX_SUBBLOCKS;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                int xmax = (length - excess) / 2;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                for (int x = 1; x &lt; xmax; x++) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        pos[level] = x;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        if (end &lt;= level + 1) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        } else {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<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>                                out.append(newlead);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                out.append(ELLIPSIS + SEPARATOR + NEWLINE);<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                xmax = (length + excess) / 2;<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                for (int x = xmax; x &lt; length - 1; x++) {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                        pos[level] = x;<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        if (end &lt;= level + 1) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        } else {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<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><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        // last sub-block<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        pos[level] = length - 1;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                        out.append(BLOCK_CLOSE);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                } else {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        out.append(makeLine(end, pos));<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><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>        @Override<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>        public void setDirty() {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                dirtyMetadata();<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>        @Override<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>        public Dataset squeezeEnds() {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                return squeeze(true);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>        }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>        @Override<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>        public Dataset squeeze() {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                return squeeze(false);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span><a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>        @Override<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>        public Dataset squeeze(boolean onlyFromEnds) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                final int[] tshape = ShapeUtils.squeezeShape(shape, onlyFromEnds);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                final int[] oshape = shape;<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                if (stride == null) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                        shape = tshape;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                } else {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                        int rank = shape.length;<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                        int trank = tshape.length;<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                        if (trank &lt; rank) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                int[] tstride = new int[tshape.length];<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                if (onlyFromEnds) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                                                if (shape[i] != 1) {<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                                                        for (int k = 0; k &lt; trank; k++) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                                                tstride[k] = stride[i++];<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                                                        }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                                        break;<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                                }<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                        }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                } else {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                        int t = 0;<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                                if (shape[i] != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                        tstride[t++] = stride[i];<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                }<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                }<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                shape = tshape;<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                stride = tstride;<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><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                setDirty();<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                reshapeMetadata(oshape, shape);<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                return this;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        @Override<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        public boolean isCompatibleWith(final ILazyDataset g) {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                return ShapeUtils.areShapesCompatible(shape, g.getShape());<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>        @Override<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public void checkCompatibility(final ILazyDataset g) throws IllegalArgumentException {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                ShapeUtils.checkCompatibility(this, g);<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>        @Override<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        public Dataset reshape(final int... shape) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                Dataset a;<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                try {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        a = getView(true);<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        a.setShape(shape);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                } catch (IllegalArgumentException e) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                        a = clone();<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        a.setShape(shape);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                return a;<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>        }<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>         * @param start<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @param stop<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * @param step<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * @return number of steps to take<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         */<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>        protected static int calcSteps(final double start, final double stop, final double step) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                return Math.max(0, (int) Math.ceil((stop - start) / step));<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span><a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>        @Override<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        public boolean isComplex() {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                int type = getDType();<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return type == COMPLEX64 || type == COMPLEX128;<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>        @Override<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>        public Dataset getRealPart() {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                return this;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span><a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        @Override<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>        public Dataset getRealView() {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                return getView(true);<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>        @Override<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>        public Dataset getSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                return getSlice(new SliceND(shape, start, stop, step));<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>        }<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span><a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>        @Override<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        public Dataset getSlice(Slice... slice) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                return getSlice(new SliceND(shape, slice));<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span><a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        @Override<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                return getSlice(slice);<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>        @Override<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>        public Dataset getSlice(IMonitor monitor, SliceND slice) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                return getSlice(slice);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>        }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span><a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>        @Override<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        public Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return getSlice(start, stop, step);<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>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * @param slice<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * @return The dataset of the sliced data<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         */<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>        @Override<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        public Dataset getSlice(final SliceND slice) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                SliceIterator it = (SliceIterator) getSliceIterator(slice);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                AbstractDataset s = getSlice(it);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                s.metadata = copyMetadata();<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                s.setDirty();<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                s.sliceMetadata(true, slice);<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                return s;<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>        }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span><a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        /**<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>         * <a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>         * @param iterator Slice iterator<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>         * @return The dataset of the sliced data<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>         */<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        abstract public AbstractDataset getSlice(final SliceIterator iterator);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>        @SuppressWarnings("deprecation")<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>        @Override<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        public Dataset setSlice(final Object obj, final SliceND slice) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                Dataset ds;<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                if (obj instanceof Dataset) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        ds = (Dataset) obj;<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                } else if (obj instanceof IDataset) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        ds = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        int dtype = getDType();<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        if (dtype != Dataset.BOOL) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                dtype = DTypeUtils.getLargestDType(dtype);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                        ds = DatasetFactory.createFromObject(getElementsPerItem(), dtype, obj);<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>                return setSlicedView(getSliceView(slice), ds);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>        }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>        @Override<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>        public Dataset setSlice(final Object obj, final int[] start, final int[] stop, final int[] step) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                return setSlice(obj, new SliceND(shape, start, stop, step));<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>         * Set a view of current dataset to given dataset with broadcasting<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * @param view<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * @param d<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * @return this dataset<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         */<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        abstract Dataset setSlicedView(Dataset view, Dataset d);<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>        public Dataset setSlice(Object obj, Slice... slice) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                if (slice == null || slice.length == 0) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        return setSlice(obj, new SliceND(shape));<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                return setSlice(obj, new SliceND(shape, slice));<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>        @Override<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>        public boolean all() {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                return Comparisons.allTrue(this);<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>        @Override<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>        public BooleanDataset all(final int axis) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                return Comparisons.allTrue(this, axis);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>        }<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        @Override<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>        public boolean any() {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                return Comparisons.anyTrue(this);<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>        @Override<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        public BooleanDataset any(final int axis) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                return Comparisons.anyTrue(this, axis);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>        }<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span><a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>        @Override<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>        public Dataset ifloorDivide(final Object o) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                return idivide(o).ifloor();<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>        @Override<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>        public double residual(final Object o) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                return residual(o, null, false);<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>        @Override<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        public double residual(final Object o, boolean ignoreNaNs) {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                return residual(o, null, ignoreNaNs);<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>         * @since 2.0<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>         */<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        @SuppressWarnings("unchecked")<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>        protected StatisticsMetadata&lt;Number&gt; getStats() {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                StatisticsMetadata&lt;Number&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                if (md == null || md.isDirty()) {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                        md = new StatisticsMetadataImpl&lt;Number&gt;();<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        md.initialize(this);<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        setMetadata(md);<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                return md;<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>         * @since 2.0<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>         */<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>        @SuppressWarnings("unchecked")<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>        protected StatisticsMetadata&lt;String&gt; getStringStats() {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                StatisticsMetadata&lt;String&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                if (md == null || md.isDirty()) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                        md = new StatisticsMetadataImpl&lt;String&gt;();<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                        md.initialize(this);<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                        setMetadata(md);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                return md;<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>        @Override<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>        public Number max(boolean... ignoreInvalids) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                return getStats().getMaximum(ignoreInvalids);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>        }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span><a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>        @Override<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>        public Dataset max(int axis, boolean... ignoreInvalids) {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                return getStats().getMaximum(axis, ignoreInvalids);<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>        @Override<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        public Number min(boolean... ignoreInvalids) {<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                return getStats().getMinimum(ignoreInvalids);<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>        @Override<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        public Dataset min(int axis, boolean... ignoreInvalids) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                return getStats().getMinimum(axis, ignoreInvalids);<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>        @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        public int argMax(boolean... ignoreInvalids) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return getFlat1DIndex(maxPos(ignoreInvalids));<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>         * @since 2.0<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         */<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>        @Override<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>        public IntegerDataset argMax(int axis, boolean... ignoreInvalids) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                return (IntegerDataset) getStats().getArgMaximum(axis, ignoreInvalids);<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>        @Override<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        public int argMin(boolean... ignoreInvalids) {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                return getFlat1DIndex(minPos(ignoreInvalids));<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span><a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>        /**<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>         * @since 2.0<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>         */<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        @Override<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        public IntegerDataset argMin(int axis, boolean... ignoreInvalids) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                return (IntegerDataset) getStats().getArgMinimum(axis, ignoreInvalids);<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>        @Override<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>        public Number peakToPeak(boolean... ignoreInvalids) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                return DTypeUtils.fromDoubleToBiggestNumber(max(ignoreInvalids).doubleValue() - min(ignoreInvalids).doubleValue(), getDType());<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>        @Override<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>        public Dataset peakToPeak(int axis,  boolean... ignoreInvalids) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                return Maths.subtract(max(axis, ignoreInvalids), min(axis, ignoreInvalids));<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span><a name="line.1630"></a>
+<span class="sourceLineNo">1631</span><a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        @Override<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>        public long count(boolean... ignoreInvalids) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return getStats().getCount(ignoreInvalids);<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 Dataset count(int axis, boolean... ignoreInvalids) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                return getStats().getCount(axis, ignoreInvalids);<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>        @Override<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>        public Object sum(boolean... ignoreInvalids) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                return getStats().getSum(ignoreInvalids);<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>        }<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span><a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        @Override<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>        public Dataset sum(int axis, boolean... ignoreInvalids) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                return getStats().getSum(axis, ignoreInvalids);<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span><a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        @Override<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        public Object product(boolean... ignoreInvalids) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                return Stats.product(this, ignoreInvalids);<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>        @Override<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>        public Dataset product(int axis, boolean... ignoreInvalids) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                return Stats.product(this, axis, ignoreInvalids);<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>        @Override<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>        public Object mean(boolean... ignoreInvalids) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                return getStats().getMean(ignoreInvalids);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span><a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>        @Override<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>        public Dataset mean(int axis, boolean... ignoreInvalids) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                return getStats().getMean(axis, ignoreInvalids);<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span><a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>        @Override<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>        public double variance() {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                return variance(false);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span><a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>        @Override<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                return getStats().getVariance(isWholePopulation, ignoreInvalids);<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>        @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>        public Dataset variance(int axis) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return getStats().getVariance(axis, false);<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>        @Override<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>        public Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                return getStats().getVariance(axis, isWholePopulation, ignoreInvalids);<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        }<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span><a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        @Override<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>        public double stdDeviation() {<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                return Math.sqrt(variance());<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>        @Override<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        public double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                return Math.sqrt(variance(isWholePopulation, ignoreInvalids));<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span><a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>        @Override<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>        public Dataset stdDeviation(int axis) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                return Maths.sqrt(variance(axis, false));<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        }<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span><a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        @Override<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                return Maths.sqrt(variance(axis, isWholePopulation, ignoreInvalids));<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>        @Override<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>        public double rootMeanSquare(boolean... ignoreInvalids) {<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                final double mean = stats.getMean(ignoreInvalids).doubleValue();<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                final double var = stats.getVariance(true, ignoreInvalids);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                return Math.sqrt(var + mean * mean);<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>        }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>        @Override<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                Dataset v = stats.getVariance(axis, true, ignoreInvalids);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                Dataset m = stats.getMean(axis, ignoreInvalids);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                Dataset result = Maths.multiply(m, m);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                return Maths.sqrt(result.iadd(v));<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>        /**<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>         * Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>         * <a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>         * @param dindex<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>         * @param sindex<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>         * @param src<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>         *            is the source data buffer<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>         */<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        protected abstract void setItemDirect(final int dindex, final int sindex, final Object src);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span><a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        /**<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>         * @return error broadcasted to current shape<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>         */<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>        private Dataset getBroadcastedInternalError() {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                if (shape == null) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                        throw new IllegalArgumentException("Cannot get error for null dataset");<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                ILazyDataset led = super.getErrors();<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                if (led == null)<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        return null;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span><a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                Dataset ed = null;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                try {<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                } catch (DatasetException e) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        logger.error("Could not get data from lazy dataset", e);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                }<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                if (led != ed) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                        setErrors(ed); // set back<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 ed.getBroadcastView(shape);<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 Dataset getErrors() {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                if (ed == null)<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                        return null;<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                return ed;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        @Override<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        public double getError() {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                if (ed == null)<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        return 0;<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span><a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                return ed.getDouble();<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 double getError(final int i) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                if (ed == null)<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                        return 0;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span><a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                return ed.getDouble(i);<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        @Override<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        public double getError(final int i, final int j) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                if (ed == null)<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                        return 0;<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span><a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                return ed.getDouble(i, j);<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>        @Override<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>        public double getError(int... pos) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                if (ed == null)<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                        return 0;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span><a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                return ed.getDouble(pos);<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>        @Override<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>        public double[] getErrorArray(final int i) {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                if (ed == null)<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        return null;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span><a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                return new double[] {getError(i)};<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>        @Override<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>        public double[] getErrorArray(final int i, final int j) {<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                if (ed == null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                        return null;<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span><a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                return new double[] {getError(i, j)};<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>        }<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span><a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        @Override<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>        public double[] getErrorArray(int... pos) {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                if (ed == null)<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        return null;<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                return new double[] {getError(pos)};<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>        }<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span><a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>        protected Dataset getInternalSquaredError() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                Dataset sed = getErrorBuffer().getBroadcastView(shape);<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                return sed;<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>        }<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span><a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>        @Override<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>        public Dataset getErrorBuffer() {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                if (emd == null)<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                        return null;<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span><a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                        ILazyDataset led = emd.getError();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                        Dataset ed;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        try {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                setMetadata(emd);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                emd.setError(ed);<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                        } catch (MetadataException me) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                logger.error("Could not create metadata", me);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        } catch (DatasetException e) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                logger.error("Could not get data from lazy dataset", e);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                        }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                }<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span><a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                return ((ErrorMetadataImpl) emd).getSquaredError();<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>        }<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span><a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        /**<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>         * Set a copy of the buffer that backs the (squared) error data<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>         * @param buffer can be null, anything that can be used to create a DoubleDataset or CompoundDoubleDataset<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>         */<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>        @Override<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        public void setErrorBuffer(Serializable buffer) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                if (shape == null) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                        throw new IllegalArgumentException("Cannot set error buffer for null dataset");<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                }<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                if (buffer == null) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                        clearMetadata(ErrorMetadata.class);<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                        return;<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>                IDataset d = (IDataset) createFromSerializable(buffer, false);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                        try {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                setMetadata(emd);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        } catch (MetadataException me) {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                logger.error("Could not create metadata", me);<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>                ((ErrorMetadataImpl) emd).setSquaredError(d);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..23c2cf2
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..497b386
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.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> *******************************************************************************<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>                private static long toLong(double d) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                return 0;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        return (long) d;<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 long longOperate(long a, long b) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return toLong(doubleOperate(a, b));<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>                 * override this<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 void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<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>                 * override this<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 String toString(String string, String string2) {<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>}<a name="line.103"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..497b386
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BinaryOperation.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> *******************************************************************************<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>                private static long toLong(double d) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                return 0;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        return (long) d;<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 long longOperate(long a, long b) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return toLong(doubleOperate(a, b));<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>                 * override this<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 void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<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>                 * override this<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 String toString(String string, String string2) {<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>}<a name="line.103"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..5a5ca46
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..aa77664
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,1017 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        } else {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                offset = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                stride = null;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                base = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                odata = data = createArray(size);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                IndexIterator iter = dataset.getIterator();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException(t);<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>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * Copy and cast a dataset to this class type<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param dataset<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        BooleanDatasetBase(final Dataset dataset) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                copyToView(dataset, this, true, false);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                offset = 0;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                stride = null;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                base = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        odata = data = createArray(size);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } catch (Throwable t) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException(t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                IndexIterator iter = dataset.getIterator();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        data[i] = dataset.getElementBooleanAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @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><a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return true;<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                BooleanDatasetBase other = (BooleanDatasetBase) obj;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>//              if (size == 1) // for zero-rank datasets<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                IndexIterator iter = getIterator();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator oiter = other.getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                return false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return true;<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 int hashCode() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return super.hashCode();<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 BooleanDatasetBase clone() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return new BooleanDatasetBase(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * sequences or arrays are padded with zeros.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         *<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @param obj<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @return dataset with contents given by input<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        static BooleanDatasetBase createFromObject(final Object obj) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                BooleanDatasetBase result = new BooleanDatasetBase();<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (obj != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        try {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                result.odata = result.data = createArray(result.size);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        } catch (Throwable t) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>        /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @param shape<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @return a dataset filled with ones<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        static BooleanDatasetBase ones(final int... shape) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new BooleanDatasetBase(shape).fill(1);<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 BooleanDatasetBase fill(final Object obj) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                setDirty();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                IndexIterator iter = getIterator();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                while (iter.hasNext()) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return data buffer as linear array<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public boolean[] getData() { // PRIM_TYPE<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return data;<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>        @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        protected int getBufferLength() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                if (data == null)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        return 0;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return data.length;<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 BooleanDatasetBase getView(boolean deepCopyMetadata) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                BooleanDatasetBase view = new BooleanDatasetBase();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                view.setData();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                return view;<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>        /**<a name="line.257"></a>
+<span class="sourceLineNo">258</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.258"></a>
+<span class="sourceLineNo">259</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         *<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param index<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *            absolute index<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @return value<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public boolean getAbs(final int index) { // PRIM_TYPE<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                return data[index];<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return false;<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 double getElementDoubleAbs(final int index) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return 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>        @Override<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public Object getObjectAbs(final int index) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                return data[index];<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>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public String getStringAbs(final int index) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return stringFormat == null ? String.format("%b", data[index]) : // FORMAT_STRING<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.295"></a>
+<span class="sourceLineNo">296</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.296"></a>
+<span class="sourceLineNo">297</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         *<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param index<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *            absolute index<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param val<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            new value<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public void setAbs(final int index, final boolean val) { // PRIM_TYPE<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                setDirty();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                data[index] = val;<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                setDirty();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                boolean[] dsrc = (boolean[]) src; // PRIM_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>
+<span class="sourceLineNo">322</span>                setAbs(index, DTypeUtils.toBoolean(obj)); // FROM_OBJECT<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>        /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return item in first position<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @since 2.0<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public boolean get() { // PRIM_TYPE<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @return item in given position<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        public boolean get(final int i) { // PRIM_TYPE<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                return data[get1DIndex(i)];<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>        /**<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param i<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param j<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in given position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        public boolean get(final int i, final int j) { // PRIM_TYPE<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 boolean get(final int... pos) { // PRIM_TYPE<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                return Boolean.valueOf(get()); // CLASS_TYPE<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>        @Override<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public Object getObject(final int i) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return Boolean.valueOf(get(i)); // CLASS_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>        @Override<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        public Object getObject(final int i, final int j) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return Boolean.valueOf(get(i, j)); // CLASS_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>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public Object getObject(final int... pos) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return Boolean.valueOf(get(pos)); // CLASS_TYPE<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>        @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        public String getString() {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public String getString(final int i, final int j) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        public String getString(final int... pos) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                return getStringAbs(get1DIndex(pos));<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>        @Override<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public double getDouble() {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return 0;<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>        @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        public double getDouble(final int i) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                return 0;<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>        @Override<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public double getDouble(final int i, final int j) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return 0;<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>        public double getDouble(final int... pos) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return 0;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public float getFloat() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                return 0;<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>        @Override<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        public float getFloat(final int i) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return 0;<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>        @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        public float getFloat(final int i, final int j) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return 0;<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>        @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public float getFloat(final int... pos) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return 0;<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>        @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public long getLong() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return 0;<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>        @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        public long getLong(final int i) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                return 0;<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>        @Override<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public long getLong(final int i, final int j) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>        @Override<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        public long getLong(final int... pos) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                return 0;<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 int getInt() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return 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 int getInt(final int i) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return 0;<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 int getInt(final int i, final int j) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return 0;<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 int getInt(final int... pos) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return 0;<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>        @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        public short getShort() {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                return 0;<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>        @Override<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public short getShort(final int i) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return 0;<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 short getShort(final int i, final int j) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                return 0;<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 short getShort(final int... pos) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return 0;<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>        @Override<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        public byte getByte() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                return 0;<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>        @Override<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public byte getByte(final int i) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                return 0;<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>        @Override<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public byte getByte(final int i, final int j) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                return 0;<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>        @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        public byte getByte(final int... pos) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                return 0;<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 boolean getBoolean() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                return false;<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 boolean getBoolean(final int i) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                return false;<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 boolean getBoolean(final int i, final int j) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                return false;<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 boolean getBoolean(final int... pos) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                return false;<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>        /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         *<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @param value<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @since 2.0<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         */<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public void setItem(final boolean value) { // PRIM_TYPE<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         *<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @param value<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param i<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        public void setItem(final boolean value, final int i) { // PRIM_TYPE<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @param value<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @param i<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param j<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         */<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        public void setItem(final boolean value, final int i, final int j) { // PRIM_TYPE<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                setAbs(get1DIndex(i, j), value);<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>        /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * Sets the value at a particular point to the passed value<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         *<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param pos<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public void setItem(final boolean value, final int... pos) { // PRIM_TYPE<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setItem(DTypeUtils.toBoolean(obj)); // FROM_OBJECT<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>        @Override<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        public void set(final Object obj, final int i) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                setItem(DTypeUtils.toBoolean(obj), i); // FROM_OBJECT<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>        @Override<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        public void set(final Object obj, final int i, final int j) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                setItem(DTypeUtils.toBoolean(obj), i, j); // FROM_OBJECT<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>        public void set(final Object obj, int... pos) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toBoolean(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public void resize(int... newShape) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                setDirty();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                final IndexIterator iter = getIterator();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final boolean[] ndata; // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                try {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        ndata = createArray(nsize);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                } catch (Throwable t) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        throw new IllegalArgumentException(t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                size = nsize;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                shape = newShape;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                stride = null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                offset = 0;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                base = null;<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>        @Override<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        public BooleanDatasetBase sort(Integer axis) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 BooleanDatasetBase getUniqueItems() {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                Set&lt;Boolean&gt; set = new TreeSet&lt;Boolean&gt;(); // CLASS_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                IndexIterator it = getIterator();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                while (it.hasNext()) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        set.add(data[it.index]);<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>                BooleanDataset u = new BooleanDataset(set.size()); // CLASS_TYPE<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                int i = 0;<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                boolean[] udata = u.getData(); // PRIM_TYPE<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                for (Boolean v : set) { // CLASS_TYPE<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        udata[i++] = v;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                }<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                return u;<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>        @Override<a name="line.650"></a>
+<span class="sourceLineNo">651</span>        public BooleanDatasetBase getSlice(final SliceIterator siter) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                BooleanDatasetBase result = new BooleanDatasetBase(siter.getShape());<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                boolean[] rdata = result.data; // PRIM_TYPE<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        rdata[i] = data[siter.index];<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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 void fillDataset(Dataset result, IndexIterator iter) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                setDirty();<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                IndexIterator riter = result.getIterator();<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>                boolean[] rdata = ((BooleanDatasetBase) result).data; // PRIM_TYPE<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        rdata[riter.index] = data[iter.index];<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><a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public BooleanDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                setDirty();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                if (obj instanceof Dataset) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        final Dataset ds = (Dataset) obj;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        if (length != ds.getSize()) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                throw new IllegalArgumentException(<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                data[biter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        while (biter.hasNext()) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                data[biter.index] = dv;<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>                return this;<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 BooleanDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                setDirty();<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                if (obj instanceof Dataset) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        final Dataset ds = (Dataset) obj;<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        if (index.getSize() != ds.getSize()) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                throw new IllegalArgumentException(<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                data[iter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        while (iter.hasNext()) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        public BooleanDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                setDirty();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                final int[] pos = iter.getPos();<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                if (obj instanceof Dataset) {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        final Dataset ds = (Dataset) obj;<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                throw new IllegalArgumentException(<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                                "Number of items in index datasets does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                setItem(ds.getElementBooleanAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        while (iter.hasNext()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                setItem(dv, pos);<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>        BooleanDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                setDirty();<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>                while (it.hasNext()) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        data[it.aIndex] = d.getElementBooleanAbs(it.bIndex);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                }<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                return this;<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 BooleanDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                setDirty();<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>                if (obj instanceof IDataset) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        final IDataset ds = (IDataset) obj;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        final int[] oshape = ds.getShape();<a name="line.774"></a>
+<span class="sourceLineNo">775</span><a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                throw new IllegalArgumentException(String.format(<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                final Dataset ads = (Dataset) ds;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                        data[siter.index] = ads.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                final int[] pos = oiter.getPos();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        data[siter.index] = ds.getBoolean(pos); // PRIM_TYPE<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>                        try {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                boolean v = DTypeUtils.toBoolean(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 (siter.hasNext())<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        data[siter.index] = v;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        } catch (IllegalArgumentException e) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                boolean[] ddata = (boolean[]) dest.getBuffer(); // PRIM_TYPE<a name="line.810"></a>
+<span class="sourceLineNo">811</span><a name="line.811"></a>
+<span class="sourceLineNo">812</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        ddata[diter.index] = data[siter.index];<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><a name="line.826"></a>
+<span class="sourceLineNo">827</span>        @Override<a name="line.827"></a>
+<span class="sourceLineNo">828</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                setDirty();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                boolean[] sdata = (boolean[]) src; // PRIM_TYPE<a name="line.830"></a>
+<span class="sourceLineNo">831</span><a name="line.831"></a>
+<span class="sourceLineNo">832</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        data[siter.index] = sdata[i];<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>        private List&lt;int[]&gt; findPositions(final boolean value) { // PRIM_TYPE<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                IndexIterator iter = getIterator(true);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                if (data[iter.index] == value) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                        posns.add(pos.clone());<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>                }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                return posns;<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>        @Override<a name="line.858"></a>
+<span class="sourceLineNo">859</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                if (max == null) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<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>        @Override<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (min == null) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.890"></a>
+<span class="sourceLineNo">891</span>        public boolean containsNans() {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                return false;<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        }<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>        @Override<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        public boolean containsInfs() {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                return false;<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>        @Override<a name="line.900"></a>
+<span class="sourceLineNo">901</span>        public boolean containsInvalidNumbers() {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                return false;<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>        @Override<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public BooleanDatasetBase iadd(final Object b) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                return this;<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>        @Override<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        public BooleanDatasetBase isubtract(final Object b) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return this;<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>        @Override<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        public BooleanDatasetBase imultiply(final Object b) {<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 BooleanDatasetBase idivide(final Object b) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return this;<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 BooleanDatasetBase ifloor() {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                return this;<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>        @Override<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        public BooleanDatasetBase iremainder(final Object b) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                return this;<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>        @Override<a name="line.935"></a>
+<span class="sourceLineNo">936</span>        public BooleanDatasetBase ipower(final Object b) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                return this;<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>        @Override<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                double sum = 0;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..0948531
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BooleanIterator.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 an iterator and visits positions where items in selection dataset are true <a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class BooleanIterator extends IndexIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        final private BooleanDataset b;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        final private IndexIterator iterb;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        final private IndexIterator iterd;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private boolean v;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int[] pos; // position in dataset<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>         * Constructor for an iterator over the items of a boolean dataset that are<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * true<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         *<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param iter dataset iterator<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @param selection boolean dataset<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public BooleanIterator(final IndexIterator iter, final Dataset selection) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                this(iter, selection, true);<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>         * Constructor for an iterator over the items of a boolean dataset that match<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * given value<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         *<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param iter dataset iterator<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param selection boolean dataset<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param value<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public BooleanIterator(final IndexIterator iter, final Dataset selection, boolean value) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                b = (BooleanDataset) DatasetUtils.cast(selection, Dataset.BOOL);<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>                iterb = selection.getIterator();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                iterd = iter;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                pos = iterd.getPos();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                v = value;<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 boolean hasNext() {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                while (iterb.hasNext() &amp;&amp; iterd.hasNext()) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        if (b.getAbs(iterb.index) == v) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                index = iterd.index;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                return 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>                return false;<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 int[] getPos() {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                return pos;<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 void reset() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                iterb.reset();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                iterd.reset();<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.0.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..977fca6
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html
@@ -0,0 +1,162 @@
+<!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>        }<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 output dataset (can be null)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public Dataset getOutput() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return oDataset;<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>        protected void storeCurrentValues() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (aIndex &gt;= 0) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        if (asDouble) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                aLong = aDataset.getElementLongAbs(aIndex);<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 (bIndex &gt;= 0) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (asDouble) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        } else {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                bLong = bDataset.getElementLongAbs(bIndex);<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>}<a name="line.90"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..459f30d
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..4228703
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
@@ -0,0 +1,294 @@
+<!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>                if (endrank &lt; 0) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        aMax = aStep;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        bMax = bStep;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        aMax = Integer.MIN_VALUE; // use max delta<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        bMax = Integer.MIN_VALUE;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                if (aDelta[j] &gt; aMax) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        aMax = aDelta[j];<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                if (bDelta[j] &gt; bMax) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        bMax = bDelta[j];<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>                aStart = aDataset.getOffset();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                aMax += aStart;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                bStart = bDataset.getOffset();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                bMax += bStart;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                reset();<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 boolean hasNext() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                int j = endrank;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                int oldA = aIndex;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                int oldB = bIndex;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                for (; j &gt;= 0; j--) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        pos[j]++;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        aIndex += aStride[j];<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        bIndex += bStride[j];<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        if (oDelta != null)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                oIndex += oStride[j];<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                pos[j] = 0;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                bIndex -= bDelta[j];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                if (oDelta != null)<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                        oIndex -= oDelta[j];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        } else {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                break;<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>                if (j == -1) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        if (endrank &gt;= 0) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                aIndex = aMax;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                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>                        aIndex += aStep;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        bIndex += bStep;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (oDelta != null)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                oIndex += oStep;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (outputA) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        oIndex = aIndex;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                } else if (outputB) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        oIndex = bIndex;<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 (aIndex == aMax || bIndex == bMax)<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>                if (read) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        if (oldA != aIndex) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                if (asDouble) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                        aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                } else {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                        aLong = aDataset.getElementLongAbs(aIndex);<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>                        if (oldB != bIndex) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                if (asDouble) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                } else {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<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><a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return true;<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>         * @return shape of first broadcasted dataset<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public int[] getFirstShape() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return aShape;<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>         * @return shape of second broadcasted dataset<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        public int[] getSecondShape() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                return bShape;<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 void reset() {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        pos[i] = 0;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (endrank &gt;= 0) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        pos[endrank] = -1;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        aIndex = aStart - aStride[endrank];<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        bIndex = bStart - bStride[endrank];<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                } else {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        aIndex = aStart - aStep;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        bIndex = bStart - bStep;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        oIndex = oStart - oStep;<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>                if (aIndex == 0 || bIndex == 0) { // for zero-ranked datasets<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        if (read) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                storeCurrentValues();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        if (aMax == aIndex)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                aMax++;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        if (bMax == bIndex)<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                bMax++;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..d4d6be8
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..244b18e
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.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> * 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>                if (endrank &lt; 0) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        aMax = aStep;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        bMax = bStep;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                } else {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        aMax = Integer.MIN_VALUE; // use max delta<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        bMax = Integer.MIN_VALUE;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                if (aDelta[j] &gt; aMax) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                        aMax = aDelta[j];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                                if (bDelta[j] &gt; bMax) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                        bMax = bDelta[j];<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>                aStart = aOffset[0];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                aMax += aStart;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                bStart = bDataset.getOffset();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                bMax += bStart;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                reset();<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>        @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        public boolean hasNext() {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                int j = endrank;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                int oldB = bIndex;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                for (; j &gt;= 0; j--) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        pos[j]++;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        aIndex += aStride[j];<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        bIndex += bStride[j];<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                pos[j] = 0;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                bIndex -= bDelta[j];<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        } else {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                break;<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>                if (j == -1) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        if (endrank &gt;= 0) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                aIndex = aMax;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                bIndex = bMax;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                return false;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        aIndex += aStep;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        bIndex += bStep;<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>                if (aIndex == aMax || bIndex == bMax)<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>                if (read) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        if (oldB != bIndex) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                if (asDouble) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                } else {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<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>                return true;<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>        /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @return shape of first broadcasted dataset<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        public int[] getFirstShape() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                return maxShape;<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>        /**<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @return shape of second broadcasted dataset<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         */<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        public int[] getSecondShape() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return bShape;<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 reset() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        pos[i] = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>                if (endrank &gt;= 0) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        pos[endrank] = -1;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        aIndex = aStart - aStride[endrank];<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        bIndex = bStart - bStride[endrank];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } else {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        aIndex = aStart - aStep;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        bIndex = bStart - bStep;<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>                if (aIndex == 0 || bIndex == 0) { // for zero-ranked datasets<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (read) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                storeCurrentValues();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        if (aMax == aIndex)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                aMax++;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        if (bMax == bIndex)<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                bMax++;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..6f7e1b1
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html
@@ -0,0 +1,348 @@
+<!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>        static void checkItemSize(Dataset a, Dataset b, Dataset o) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                final int isa = a.getElementsPerItem();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                final int isb = b.getElementsPerItem();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (isa != isb &amp;&amp; isa != 1 &amp;&amp; isb != 1) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        // exempt single-value dataset case too<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        if ((isa == 1 || b.getSize() != 1) &amp;&amp; (isb == 1 || a.getSize() != 1) ) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                throw new IllegalArgumentException("Can not broadcast where number of elements per item mismatch and one does not equal another");<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>                if (o != null &amp;&amp; o.getDType() != Dataset.BOOL) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        final int ism = Math.max(isa, isb);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        final int iso = o.getElementsPerItem();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        if (iso != ism &amp;&amp; ism != 1) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param a dataset<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @param broadcastShape<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return stride array<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public static int[] createBroadcastStrides(Dataset a, final int[] broadcastShape) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return createBroadcastStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), broadcastShape);<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>        /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @param isize<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param oShape original shape<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @param oStride original stride<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param broadcastShape<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return stride array<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        public static int[] createBroadcastStrides(final int isize, final int[] oShape, final int[] oStride, final int[] broadcastShape) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                int rank = oShape.length;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                if (broadcastShape.length != rank) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException("Dataset must have same rank as broadcast shape");<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>                int[] stride = new int[rank];<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                if (oStride == null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        int s = isize;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        stride[j] = s;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                        s *= oShape[j];<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                } else {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                        stride[j] = 0;<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>                } else {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        stride[j] = oStride[j];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                } else {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                        stride[j] = 0;<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>                return stride;<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>         * Converts and broadcast all objects as datasets of same shape<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @param objects<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @return all as broadcasted to same shape<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         */<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        public static Dataset[] convertAndBroadcast(Object... objects) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                final int n = objects.length;<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>                Dataset[] datasets = new Dataset[n];<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                int[][] shapes = new int[n][];<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                for (int i = 0; i &lt; n; i++) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        Dataset d = DatasetFactory.createFromObject(objects[i]);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        datasets[i] = d;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        shapes[i] = d.getShapeRef();<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>                List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapes(shapes);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                int[] mshape = nShapes.get(0);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                for (int i = 0; i &lt; n; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        datasets[i] = datasets[i].getBroadcastView(mshape);<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>                return datasets;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..ce3ee93
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,1335 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        ByteDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = (byte) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                ByteDataset other = (ByteDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 ByteDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new ByteDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static ByteDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                ByteDataset result = new ByteDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static ByteDataset createRange(final double stop) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 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>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param start<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static ByteDataset createRange(final double start, final double stop, final double step) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                ByteDataset result = new ByteDataset(size);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result;<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static ByteDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new ByteDataset(shape).fill(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 ByteDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public byte[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 ByteDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                ByteDataset view = new ByteDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public byte getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, (byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public byte get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public byte get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public byte get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 byte get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Byte.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Byte.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Byte.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Byte.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         *<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final byte value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         *<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final byte value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final byte value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         *<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final byte value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem((byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem((byte) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem((byte) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem((byte) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final byte[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public ByteDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                ByteDataset ads = clone().sort(null);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        ByteDataset ads = new ByteDataset(shape[axis]);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public ByteDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Byte&gt; set = new TreeSet&lt;Byte&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                ByteDataset u = new ByteDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                byte[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Byte v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public ByteDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                ByteDataset result = new ByteDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                byte[] rdata = ((ByteDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public ByteDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public ByteDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public ByteDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem((byte) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        ByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public ByteDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                byte v = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final byte value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (data[iter.index] == value) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone());<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>                }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (max == null) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        max = findPositions(md.getMaximum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>        @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>                if (min == null) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        min = findPositions(md.getMinimum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public boolean containsNans() {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return false;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public boolean containsInfs() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return false;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public boolean containsInvalidNumbers() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return false;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public ByteDataset iadd(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                setDirty();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                if (bds.getSize() == 1) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        final IndexIterator it = getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (useLong) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                while (it.hasNext()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                while (it.hasNext()) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        data[it.index] += db;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        it.setOutputDouble(!useLong);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        if (useLong) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        data[it.aIndex] += it.bLong;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        } else {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        data[it.aIndex] += it.bDouble;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<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 this;<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>        @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public ByteDataset isubtract(final Object b) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                setDirty();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (bds.getSize() == 1) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        final IndexIterator it = getIterator();<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        if (useLong) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        data[it.index] -= lb;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        } else {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        data[it.index] -= db;<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>                } else {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (useLong) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                it.setOutputDouble(false);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        } else {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                it.setOutputDouble(true);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                while (it.hasNext()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        data[it.aIndex] -= it.bDouble;<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>                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                return this;<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>        @Override<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        public ByteDataset imultiply(final Object b) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                setDirty();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (bds.getSize() == 1) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        final IndexIterator it = getIterator();<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        if (useLong) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                while (it.hasNext()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        data[it.index] *= lb;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        } else {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                while (it.hasNext()) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        data[it.index] *= db;<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>                } else {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        it.setOutputDouble(!useLong);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        if (useLong) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                while (it.hasNext()) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        } else {<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.bDouble;<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>                }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                return this;<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>        @Override<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        public ByteDataset idivide(final Object b) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                setDirty();<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                if (bds.getSize() == 1) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (useLong) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                if (lb == 0) { // INT_USE<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        fill(0); // INT_USE<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                } else { // INT_USE<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                final IndexIterator it = getIterator();<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                while (it.hasNext()) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        data[it.index] /= lb;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                if (db == 0) { // INT_USE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        fill(0); // INT_USE<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } else { // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                final IndexIterator it = getIterator();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        data[it.index] /= db;<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        it.setOutputDouble(!useLong);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (useLong) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        } else { // INT_USE<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        } else {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        } else { // INT_USE<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        } // INT_USE<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>                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                return this;<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>        @Override<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        public ByteDataset ifloor() {<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 iremainder(final Object b) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                setDirty();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                if (bds.getSize() == 1) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (useLong) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                if (lb == 0) { // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        fill(0); // INT_USE<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                } else { // INT_USE<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                final IndexIterator it = getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                while (it.hasNext()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        data[it.index] %= lb;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                } // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        } else {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                if (lb == 0) { // INT_USE<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        fill(0); // INT_USE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                } else { // INT_USE<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final IndexIterator it = getIterator();<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                while (it.hasNext()) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.index] %= lb;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                } // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                } else {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        it.setOutputDouble(!useLong);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        if (useLong) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                while (it.hasNext()) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                try {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                } catch (ArithmeticException e) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.aIndex] = 0;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                while (it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                data[it.aIndex] %= it.bDouble; // INT_EXCEPTION<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } catch (ArithmeticException e) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        data[it.aIndex] = 0;<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>                        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return this;<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>        @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        public ByteDataset ipower(final Object b) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                setDirty();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (bds.getSize() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        final IndexIterator it = getIterator();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (bds.isComplex()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                if (vi == 0) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                        while (it.hasNext()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                } else { // INT_USE<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                } // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                } else {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        while (it.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                } else { // INT_USE<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                } // INT_USE<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>                        } else {// NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                while (it.hasNext()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = 0; // INT_USE<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        } else { // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        } // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                } else {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        if (bds.isComplex()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                while (it.hasNext()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        } else { // INT_USE<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        } // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        } else {// NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                while (it.hasNext()) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        } else { // INT_USE<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } // INT_USE<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>                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                return this;<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>        @Override<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                it.setOutputDouble(true);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                double sum = 0;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                double comp = 0;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        if (w == null) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                while (it.hasNext()) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        final double err = diff * diff - comp;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        final double temp = sum + err;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        comp = (temp - sum) - err;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        sum = temp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        } else {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                IndexIterator itw = w.getIterator();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final double temp = sum + err;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        comp = (temp - sum) - err;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        sum = temp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                }<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>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..9fd3883
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..66c6f69
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
@@ -0,0 +1,1836 @@
+<!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>         * @param a<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @return true if all elements are true<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         */<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                axis = AbstractDataset.checkAxis(a.getRank(), axis);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                int rank = a.getRank();<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                int[] oshape = a.getShape();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int alen = oshape[axis];<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                oshape[axis] = 1;<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                IndexIterator qiter = result.getIterator(true);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                int[] qpos = qiter.getPos();<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                int[] spos = oshape;<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>                while (qiter.hasNext()) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        int i = 0;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        for (; i &lt; axis; i++) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                spos[i] = qpos[i];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        spos[i++] = 0;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        for (; i &lt; rank; i++) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                spos[i] = qpos[i-1];<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>                        boolean br = true;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                spos[axis] = j;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                br &amp;= a.getBoolean(spos);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        result.set(br, qpos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return result;<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>         * @param a<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         * @return true if any element is true<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         */<a name="line.916"></a>
+<span class="sourceLineNo">917</span>        public static boolean anyTrue(Object a) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                final IndexIterator it = da.getIterator();<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final int as = da.getElementsPerItem();<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                if (as == 1) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        while (it.hasNext()) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        return true;<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>                        while (it.hasNext()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                                return true;<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>                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                return false;<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>        /**<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param a<a name="line.939"></a>
+<span class="sourceLineNo">940</span>         * @return true if any element is true<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         */<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                axis = AbstractDataset.checkAxis(a.getRank(), axis);<a name="line.943"></a>
+<span class="sourceLineNo">944</span><a name="line.944"></a>
+<span class="sourceLineNo">945</span>                int rank = a.getRank();<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                int[] oshape = a.getShape();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                int alen = oshape[axis];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                oshape[axis] = 1;<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                IndexIterator qiter = result.getIterator(true);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                int[] qpos = qiter.getPos();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                int[] spos = oshape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                while (qiter.hasNext()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        int i = 0;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        for (; i &lt; axis; i++) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                spos[i] = qpos[i];<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        }<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        spos[i++] = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; rank; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i-1];<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>                        boolean br = false;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                spos[axis] = j;<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                br |= a.getBoolean(spos);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        result.set(br, qpos);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                return result;<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>        /**<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         * Negate item-wise<a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * &lt;p&gt;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.981"></a>
+<span class="sourceLineNo">982</span>         * are true.<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * @param a<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * @return dataset where item is true when a is false<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         */<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                return logicalNot(a, null);<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>        /**<a name="line.990"></a>
+<span class="sourceLineNo">991</span>         * Negate item-wise<a name="line.991"></a>
+<span class="sourceLineNo">992</span>         * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * are true.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * @param a<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return dataset where item is true when a is false<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                final int as = da.getElementsPerItem();<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                if (as == 1) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        while (it.hasNext()) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                } else {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        boolean br = true;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        while (it.hasNext()) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                r.setAbs(it.oIndex, !br);<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>                return r;<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>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * &lt;p&gt;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * of the dataset with smaller items is used for comparison.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * @param a<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * @param b<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         */<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                return logicalAnd(a, b, null);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        }<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>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * &lt;p&gt;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * of the dataset with smaller items is used for comparison.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @param a<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * @param b<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         */<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span><a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                it.setOutputDouble(true);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final int as = da.getElementsPerItem();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                final int bs = db.getElementsPerItem();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                if (as &gt; bs) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        while (it.hasNext()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                boolean rb = true;<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                r.setAbs(it.oIndex, rb);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                } else if (as &lt; bs) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        while (it.hasNext()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                boolean rb = true;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                r.setAbs(it.oIndex, rb);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        if (as == 1) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (it.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        } else {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        boolean rb = true;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        r.setAbs(it.oIndex, rb);<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><a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                return r;<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>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * &lt;p&gt;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * of the dataset with smaller items is used for comparison.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * @param a<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * @param b<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * @return dataset where item is true if a || b is true<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         */<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return logicalOr(a, b, null);<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>        /**<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>         * &lt;p&gt;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * of the dataset with smaller items is used for comparison.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @param a<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * @param b<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * @return dataset where item is true if a || b is true<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         */<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span><a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                it.setOutputDouble(true);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final int as = da.getElementsPerItem();<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                final int bs = db.getElementsPerItem();<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                if (as &gt; bs) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        while (it.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                boolean rb = true;<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                r.setAbs(it.oIndex, rb);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                } else if (as &lt; bs) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        while (it.hasNext()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                boolean rb = true;<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                r.setAbs(it.oIndex, rb);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                } else {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        if (as == 1) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                while (it.hasNext()) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        } else {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        boolean rb = true;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        }<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>                return r;<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>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         * &lt;p&gt;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * of the dataset with smaller items is used for comparison.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * @param a<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param b<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @return dataset where item is true if a ^ b is true<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         */<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                return logicalXor(a, b, null);<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>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * &lt;p&gt;<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * of the dataset with smaller items is used for comparison.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @param a<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * @param b<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @return dataset where item is true if a ^ b is true<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         */<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final int as = da.getElementsPerItem();<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                final int bs = db.getElementsPerItem();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (as &gt; bs) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                r.setAbs(it.oIndex, rb);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        }<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                } else if (as &lt; bs) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        while (it.hasNext()) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                r.setAbs(it.oIndex, rb);<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>                        if (as == 1) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<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>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        boolean rb = true;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        r.setAbs(it.oIndex, rb);<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>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                return r;<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>         * Create a list of indices of positions where items are non-zero<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>         * @param a<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>         * @return list of positions as integer datasets<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>         */<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>        @SuppressWarnings("deprecation")<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                final int rank = a.getRank();<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                if (rank == 0)<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        return indexList;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        indices.add(new ArrayList&lt;Integer&gt;());<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>                final IndexIterator iter = a.getIterator(true);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                final int[] pos = iter.getPos();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                while (iter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        indices.get(j).add(pos[j]);<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>                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span><a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(Dataset.INT32, indices.get(j)));<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                return indexList;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>        }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span><a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>        /**<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>         * &lt;p&gt;<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * @param a<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         */<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                return isNaN(a, null);<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>        /**<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>         * &lt;p&gt;<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * @param a<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         */<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span><a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span><a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                if (!da.hasFloatingPointElements()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        if (r == o) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                r.fill(false);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                it.setOutputDouble(true);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                final int as = da.getElementsPerItem();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span><a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                if (as == 1) {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        while (it.hasNext()) {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        }<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                } else {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                while (it.hasNext()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                }<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                        } else {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                while (it.hasNext()) {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                        boolean rb = false;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                return r;<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>         * Check item-wise for whether any a's elements are infinite<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>         * &lt;p&gt;<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * @param a<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         */<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                return isInfinite(a, null);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>        }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        /**<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>         * &lt;p&gt;<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * @param a<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         */<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span><a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                if (!da.hasFloatingPointElements()) {<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                        if (r == o) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                r.fill(false);<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                it.setOutputDouble(true);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                final int as = da.getElementsPerItem();<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span><a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                if (as == 1) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                        while (it.hasNext()) {<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        }<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                } else {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                while (it.hasNext()) {<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        } else {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                while (it.hasNext()) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        boolean rb = false;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        r.setAbs(it.oIndex, rb);<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>                return r;<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>        /**<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * &lt;p&gt;<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * @param a<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         */<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<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>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>         * &lt;p&gt;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * @param a<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         */<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<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>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * &lt;p&gt;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * @param a<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         */<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span><a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        /**<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * &lt;p&gt;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * @param a<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         */<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>        }<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>         * Check item-wise for whether any a's elements match given item<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>         * &lt;p&gt;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * @param a<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * @param match<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @return dataset where items are true if any of its elements match<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         */<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span><a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span><a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                if (!da.hasFloatingPointElements()) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                        if (r == o) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                r.fill(false);<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                        }<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                it.setOutputDouble(true);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                final int as = da.getElementsPerItem();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                if (as == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                        while (it.hasNext()) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                        }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                } else {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        final double rv = it.aDouble;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                        } else {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                while (it.hasNext()) {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        boolean rb = false;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                }<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>                return r;<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>        /**<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * &lt;p&gt;<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * @param a<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         */<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                return isFinite(a, null);<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>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>         * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * @param a<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         */<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span><a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span><a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span><a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                if (!da.hasFloatingPointElements()) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        r.fill(true);<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                        return r;<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span><a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                it.setOutputDouble(true);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                final int as = da.getElementsPerItem();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span><a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                if (as == 1) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                final double rv = it.aDouble;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                } else {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                while (it.hasNext()) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        final double rv = it.aDouble;<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                while (it.hasNext()) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        boolean rb = false;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final double rv = it.aDouble;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        r.setAbs(it.oIndex, rb);<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>                return r;<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>        /**<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>         */<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        public static enum Monotonicity {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                /**<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                 * No order: x_0 != x_1 != x_2 ...<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                 */<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                NOT_ORDERED,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                /**<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 * All equal: x_0 == x_1 == x_2 ...<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                 */<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                ALL_EQUAL,<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                /**<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 * Strictly decreasing x_0 &gt; x_1 &gt; x_2 ...<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                 */<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                STRICTLY_DECREASING,<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                /**<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 * Non-increasing or weakly decreasing x_0 &gt;= x_1 &gt;= x_2 ...<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                 */<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                NONINCREASING,<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                /**<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 * Non-decreasing or weakly increasing x_0 &lt;= x_1 &lt;= x_2 ...<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                 */<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                NONDECREASING,<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                /**<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 * Strictly increasing x_0 &lt; x_1 &lt; x_2 ...<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                 */<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                STRICTLY_INCREASING,<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>        /**<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>         * @param a<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>         * @return true if all elements are in a monotonic order<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>         * @see #findMonotonicity(Object)<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         */<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        public static boolean isMonotonic(Object a) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>        }<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>         * @param a<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>         * @param monotonicity<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>         * @return true if all elements are in given monotonic ordering<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         */<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                if (da.getRank() &gt; 1) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<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>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<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>                final IndexIterator it = da.getIterator();<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                double previous = Double.NaN;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                }<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span><a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                Boolean increasing = null;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                boolean equality = false;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                while (it.hasNext()) { // look for first change<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        if (!Double.isNaN(next)) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                if (previous != next) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                        increasing = previous &lt; next;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                        previous = next;<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                        break;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                } else if (!equality) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        equality = true;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                                return false;<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><a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                if (increasing == null) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                        if (equality)<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                }<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span><a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                if (increasing) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                return false;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span><a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        while (it.hasNext()) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (!Double.isNaN(next)) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (previous &gt; next) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else if (previous &lt; next) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                                previous = next;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        } else if (!equality) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                equality = true;<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                        return false;<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<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><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<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>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                        return false;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                while (it.hasNext()) {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        if (!Double.isNaN(next)) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                if (previous &lt; next) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else if (previous &gt; next) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        previous = next;<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                } else if (!equality) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        equality = true;<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                return false;<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>                }<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span><a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                return monotonicity != Monotonicity.NOT_ORDERED;<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>        /**<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>         * @param a<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>         * @see #findMonotonicity(Object)<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         */<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<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>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>         * @param a<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>         * @return monotonicity<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                if (da.getRank() &gt; 1) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<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>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<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>                final IndexIterator it = da.getIterator();<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                double previous = Double.NaN;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                        previous = da.getElementDoubleAbs(it.index);<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>                Boolean increasing = null;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                boolean equality = false;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                while (it.hasNext()) { // look for first change<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        if (!Double.isNaN(next)) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                if (previous != next) {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                        increasing = previous &lt; next;<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        previous = next;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        break;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                } else if (!equality) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        equality = true;<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>                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span><a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                if (increasing == null) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<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>                if (increasing) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                        while (it.hasNext()) {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                if (!Double.isNaN(next)) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        if (previous &gt; next) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                        } else if (previous &lt; next) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                previous = next;<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        } else if (!equality) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                equality = true;<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>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<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>                while (it.hasNext()) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!Double.isNaN(next)) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (previous &lt; next) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else if (previous &gt; next) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        previous = next;<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else if (!equality) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        equality = true;<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>                }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..66c6f69
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1836 @@
+<!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>         * @param a<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @return true if all elements are true<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         */<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                axis = AbstractDataset.checkAxis(a.getRank(), axis);<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                int rank = a.getRank();<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                int[] oshape = a.getShape();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int alen = oshape[axis];<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                oshape[axis] = 1;<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                IndexIterator qiter = result.getIterator(true);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                int[] qpos = qiter.getPos();<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                int[] spos = oshape;<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>                while (qiter.hasNext()) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        int i = 0;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        for (; i &lt; axis; i++) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                spos[i] = qpos[i];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        spos[i++] = 0;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        for (; i &lt; rank; i++) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                spos[i] = qpos[i-1];<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>                        boolean br = true;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                spos[axis] = j;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                br &amp;= a.getBoolean(spos);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        result.set(br, qpos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return result;<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>         * @param a<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         * @return true if any element is true<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         */<a name="line.916"></a>
+<span class="sourceLineNo">917</span>        public static boolean anyTrue(Object a) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                final IndexIterator it = da.getIterator();<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final int as = da.getElementsPerItem();<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                if (as == 1) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        while (it.hasNext()) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        return true;<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>                        while (it.hasNext()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                                return true;<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>                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                return false;<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>        /**<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param a<a name="line.939"></a>
+<span class="sourceLineNo">940</span>         * @return true if any element is true<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         */<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                axis = AbstractDataset.checkAxis(a.getRank(), axis);<a name="line.943"></a>
+<span class="sourceLineNo">944</span><a name="line.944"></a>
+<span class="sourceLineNo">945</span>                int rank = a.getRank();<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                int[] oshape = a.getShape();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                int alen = oshape[axis];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                oshape[axis] = 1;<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                IndexIterator qiter = result.getIterator(true);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                int[] qpos = qiter.getPos();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                int[] spos = oshape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                while (qiter.hasNext()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        int i = 0;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        for (; i &lt; axis; i++) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                spos[i] = qpos[i];<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        }<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        spos[i++] = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; rank; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i-1];<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>                        boolean br = false;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                spos[axis] = j;<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                br |= a.getBoolean(spos);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        result.set(br, qpos);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                return result;<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>        /**<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         * Negate item-wise<a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * &lt;p&gt;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.981"></a>
+<span class="sourceLineNo">982</span>         * are true.<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * @param a<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * @return dataset where item is true when a is false<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         */<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                return logicalNot(a, null);<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>        /**<a name="line.990"></a>
+<span class="sourceLineNo">991</span>         * Negate item-wise<a name="line.991"></a>
+<span class="sourceLineNo">992</span>         * &lt;p&gt;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * are true.<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * @param a<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return dataset where item is true when a is false<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                final int as = da.getElementsPerItem();<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                if (as == 1) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        while (it.hasNext()) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                } else {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        boolean br = true;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        while (it.hasNext()) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                r.setAbs(it.oIndex, !br);<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>                return r;<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>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * &lt;p&gt;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * of the dataset with smaller items is used for comparison.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * @param a<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * @param b<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         */<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                return logicalAnd(a, b, null);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        }<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>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * &lt;p&gt;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * of the dataset with smaller items is used for comparison.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @param a<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * @param b<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         */<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span><a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                it.setOutputDouble(true);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final int as = da.getElementsPerItem();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                final int bs = db.getElementsPerItem();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                if (as &gt; bs) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        while (it.hasNext()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                boolean rb = true;<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                r.setAbs(it.oIndex, rb);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                } else if (as &lt; bs) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        while (it.hasNext()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                boolean rb = true;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                r.setAbs(it.oIndex, rb);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        if (as == 1) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (it.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        } else {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        boolean rb = true;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        r.setAbs(it.oIndex, rb);<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><a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                return r;<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>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * &lt;p&gt;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * of the dataset with smaller items is used for comparison.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * @param a<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * @param b<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * @return dataset where item is true if a || b is true<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         */<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return logicalOr(a, b, null);<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>        /**<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>         * &lt;p&gt;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * of the dataset with smaller items is used for comparison.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @param a<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * @param b<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * @return dataset where item is true if a || b is true<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         */<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span><a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                it.setOutputDouble(true);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final int as = da.getElementsPerItem();<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                final int bs = db.getElementsPerItem();<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                if (as &gt; bs) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        while (it.hasNext()) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                boolean rb = true;<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                r.setAbs(it.oIndex, rb);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                } else if (as &lt; bs) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        while (it.hasNext()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                boolean rb = true;<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                r.setAbs(it.oIndex, rb);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                } else {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        if (as == 1) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                while (it.hasNext()) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        } else {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        boolean rb = true;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                        }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        }<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>                return r;<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>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         * &lt;p&gt;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * of the dataset with smaller items is used for comparison.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * @param a<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param b<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @return dataset where item is true if a ^ b is true<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         */<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                return logicalXor(a, b, null);<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>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * &lt;p&gt;<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * of the dataset with smaller items is used for comparison.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @param a<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * @param b<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @return dataset where item is true if a ^ b is true<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         */<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final int as = da.getElementsPerItem();<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                final int bs = db.getElementsPerItem();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                if (as &gt; bs) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                r.setAbs(it.oIndex, rb);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        }<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                } else if (as &lt; bs) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        while (it.hasNext()) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                r.setAbs(it.oIndex, rb);<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>                        if (as == 1) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<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>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        boolean rb = true;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        r.setAbs(it.oIndex, rb);<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>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                return r;<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>         * Create a list of indices of positions where items are non-zero<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>         * @param a<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>         * @return list of positions as integer datasets<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>         */<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>        @SuppressWarnings("deprecation")<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                final int rank = a.getRank();<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                if (rank == 0)<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        return indexList;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        indices.add(new ArrayList&lt;Integer&gt;());<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>                final IndexIterator iter = a.getIterator(true);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                final int[] pos = iter.getPos();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                while (iter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        indices.get(j).add(pos[j]);<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>                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span><a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(Dataset.INT32, indices.get(j)));<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                return indexList;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>        }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span><a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>        /**<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>         * &lt;p&gt;<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * @param a<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         */<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                return isNaN(a, null);<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>        /**<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>         * &lt;p&gt;<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * @param a<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         */<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span><a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span><a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                if (!da.hasFloatingPointElements()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        if (r == o) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                r.fill(false);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                it.setOutputDouble(true);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                final int as = da.getElementsPerItem();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span><a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                if (as == 1) {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        while (it.hasNext()) {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        }<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                } else {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                while (it.hasNext()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                }<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                        } else {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                while (it.hasNext()) {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                        boolean rb = false;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                return r;<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>         * Check item-wise for whether any a's elements are infinite<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>         * &lt;p&gt;<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * @param a<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         */<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                return isInfinite(a, null);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>        }<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        /**<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>         * &lt;p&gt;<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * @param a<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         */<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span><a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                if (!da.hasFloatingPointElements()) {<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                        if (r == o) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                r.fill(false);<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                it.setOutputDouble(true);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                final int as = da.getElementsPerItem();<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span><a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                if (as == 1) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                        while (it.hasNext()) {<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        }<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                } else {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                while (it.hasNext()) {<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        } else {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                while (it.hasNext()) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        boolean rb = false;<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        r.setAbs(it.oIndex, rb);<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>                return r;<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>        /**<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * &lt;p&gt;<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * @param a<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         */<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<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>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>         * &lt;p&gt;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * @param a<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         */<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<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>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * &lt;p&gt;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * @param a<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         */<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span><a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        /**<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * &lt;p&gt;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * @param a<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         */<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>        }<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>         * Check item-wise for whether any a's elements match given item<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>         * &lt;p&gt;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * @param a<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * @param match<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @return dataset where items are true if any of its elements match<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         */<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span><a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span><a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                if (!da.hasFloatingPointElements()) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                        if (r == o) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                r.fill(false);<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                        }<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        return r;<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                it.setOutputDouble(true);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                final int as = da.getElementsPerItem();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                if (as == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                        while (it.hasNext()) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                        }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                } else {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                while (it.hasNext()) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        final double rv = it.aDouble;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                        } else {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                while (it.hasNext()) {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        boolean rb = false;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                }<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>                return r;<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>        /**<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * &lt;p&gt;<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * @param a<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         */<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                return isFinite(a, null);<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>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>         * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * @param a<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         */<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span><a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span><a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span><a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                if (!da.hasFloatingPointElements()) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        r.fill(true);<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                        return r;<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span><a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                it.setOutputDouble(true);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                final int as = da.getElementsPerItem();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span><a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                if (as == 1) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                final double rv = it.aDouble;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                } else {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                while (it.hasNext()) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        final double rv = it.aDouble;<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                while (it.hasNext()) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        boolean rb = false;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                final double rv = it.aDouble;<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        r.setAbs(it.oIndex, rb);<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>                return r;<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>        /**<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>         */<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        public static enum Monotonicity {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                /**<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                 * No order: x_0 != x_1 != x_2 ...<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                 */<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                NOT_ORDERED,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                /**<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 * All equal: x_0 == x_1 == x_2 ...<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                 */<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                ALL_EQUAL,<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                /**<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 * Strictly decreasing x_0 &gt; x_1 &gt; x_2 ...<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                 */<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                STRICTLY_DECREASING,<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                /**<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 * Non-increasing or weakly decreasing x_0 &gt;= x_1 &gt;= x_2 ...<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                 */<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                NONINCREASING,<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                /**<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 * Non-decreasing or weakly increasing x_0 &lt;= x_1 &lt;= x_2 ...<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                 */<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                NONDECREASING,<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                /**<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 * Strictly increasing x_0 &lt; x_1 &lt; x_2 ...<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                 */<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                STRICTLY_INCREASING,<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>        /**<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>         * @param a<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>         * @return true if all elements are in a monotonic order<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>         * @see #findMonotonicity(Object)<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         */<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        public static boolean isMonotonic(Object a) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>        }<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>         * @param a<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>         * @param monotonicity<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>         * @return true if all elements are in given monotonic ordering<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         */<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                if (da.getRank() &gt; 1) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<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>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<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>                final IndexIterator it = da.getIterator();<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                double previous = Double.NaN;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                }<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span><a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                Boolean increasing = null;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                boolean equality = false;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                while (it.hasNext()) { // look for first change<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        if (!Double.isNaN(next)) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                if (previous != next) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                        increasing = previous &lt; next;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                        previous = next;<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                        break;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                } else if (!equality) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        equality = true;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                                return false;<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><a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                if (increasing == null) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                        if (equality)<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                }<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span><a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                if (increasing) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                return false;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span><a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        while (it.hasNext()) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (!Double.isNaN(next)) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (previous &gt; next) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else if (previous &lt; next) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                                previous = next;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        } else if (!equality) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                equality = true;<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                        return false;<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<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><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<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>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                        return false;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                while (it.hasNext()) {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        if (!Double.isNaN(next)) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                if (previous &lt; next) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else if (previous &gt; next) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        previous = next;<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                } else if (!equality) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        equality = true;<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                return false;<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>                }<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span><a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                return monotonicity != Monotonicity.NOT_ORDERED;<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>        /**<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>         * @param a<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>         * @see #findMonotonicity(Object)<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         */<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<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>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>         * @param a<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>         * @return monotonicity<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                if (da.getRank() &gt; 1) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<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>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<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>                final IndexIterator it = da.getIterator();<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                double previous = Double.NaN;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                        previous = da.getElementDoubleAbs(it.index);<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>                Boolean increasing = null;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                boolean equality = false;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                while (it.hasNext()) { // look for first change<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        if (!Double.isNaN(next)) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                if (previous != next) {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                        increasing = previous &lt; next;<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        previous = next;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        break;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                } else if (!equality) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        equality = true;<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>                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span><a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                if (increasing == null) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<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>                if (increasing) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                        while (it.hasNext()) {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                if (!Double.isNaN(next)) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        if (previous &gt; next) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                        } else if (previous &lt; next) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                previous = next;<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        } else if (!equality) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                equality = true;<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>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<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>                while (it.hasNext()) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!Double.isNaN(next)) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (previous &lt; next) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else if (previous &gt; next) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        previous = next;<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else if (!equality) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        equality = true;<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>                }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..3dcad86
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
@@ -0,0 +1,1123 @@
+<!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>                        if (useLong) { // note no complex longs<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                while (it.hasNext()) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                        data[it.index] += lb;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        } else {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        while (it.hasNext()) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                data[it.index] += db;<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 double vi = bds.getElementDoubleAbs(1);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                        while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                                data[it.index]     += db;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                                data[it.index + 1] += vi;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        }<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>                } else {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        it.setOutputDouble(!useLong);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        if (useLong) { // note no complex longs<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                while (it.hasNext()) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        data[it.aIndex] += it.bLong;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        } else {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                if (bds.isComplex()) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                        while (it.hasNext()) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                } else {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        while (it.hasNext()) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                                data[it.aIndex] += it.bDouble;<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>                        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return this;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public ComplexDoubleDataset isubtract(final Object b) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                setDirty();<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                if (bds.getSize() == 1) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        final IndexIterator it = getIterator();<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        if (useLong) { // note no complex longs<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                while (it.hasNext()) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        data[it.index] -= lb;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        } else {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                        while (it.hasNext()) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                data[it.index] -= db;<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                } else {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                        final double vi = bds.getElementDoubleAbs(1);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                        while (it.hasNext()) {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                                data[it.index]     -= db;<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                                data[it.index + 1] -= vi;<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>                } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        it.setOutputDouble(!useLong);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        if (useLong) { // note no complex longs<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                while (it.hasNext()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                        data[it.aIndex] -= it.bLong;<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>                                if (bds.isComplex()) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                        while (it.hasNext()) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                        }<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                } else {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                        while (it.hasNext()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                                data[it.aIndex] -= it.bDouble;<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>                }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                return this;<a name="line.761"></a>
+<span class="sourceLineNo">762</span>        }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>        @Override<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        public ComplexDoubleDataset imultiply(final Object b) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                setDirty();<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                if (bds.getSize() == 1) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        final IndexIterator it = getIterator();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        if (useLong) { // note no complex longs<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                final long r2 = bds.getElementLongAbs(0);<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                while (it.hasNext()) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                        data[it.index]     *= r2;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                        data[it.index + 1] *= r2;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        } else {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                final double r2 = bds.getElementDoubleAbs(0);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                        while (it.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                data[it.index]     *= r2;<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                                data[it.index + 1] *= r2;<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                        }<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                } else {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        final double i2 = bds.getElementDoubleAbs(1);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                        while (it.hasNext()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                double r1 = data[it.index];<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                double i1 = data[it.index + 1];<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                                data[it.index]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                                data[it.index + 1] = (r1*i2 + i1*r2); // ADD_CAST<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>                } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        it.setOutputDouble(!useLong);<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        if (useLong) { // note no complex longs<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                while (it.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        data[it.aIndex + 1] *= it.bDouble;<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>                                if (bds.isComplex()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                        while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                                double r1 = it.aDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                                double r2 = it.bDouble;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                double i1 = data[it.aIndex + 1];<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                                data[it.aIndex]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                                data[it.aIndex + 1] = (r1*i2 + i1*r2); // ADD_CAST<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                        }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                } else {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                        while (it.hasNext()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                                data[it.aIndex]     *= it.bDouble;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                                data[it.aIndex + 1] *= it.bDouble;<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>                        }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return this;<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>        @Override<a name="line.823"></a>
+<span class="sourceLineNo">824</span>        public ComplexDoubleDataset idivide(final Object b) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                setDirty();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                if (bds.getSize() == 1) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        final IndexIterator it = getIterator();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        if (useLong) { // note no complex longs<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final long r2 = bds.getElementLongAbs(0);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        data[it.index]     /= r2;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                        data[it.index + 1] /= r2;<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final double r2 = bds.getElementDoubleAbs(0);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        while (it.hasNext()) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                                data[it.index]     /= r2;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                data[it.index + 1] /= r2;<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        final double i2 = bds.getElementDoubleAbs(1);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                        if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                double q = r2/i2;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                                double den = r2*q + i2;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                                while (it.hasNext()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                                        double r1 = data[it.index];<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                        double i1 = data[it.index + 1];<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                        data[it.index]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                        data[it.index + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        } else {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                                double q = i2/r2;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                                double den = i2*q + r2;<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                if (den == 0) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                                data[it.index]     = Double.NaN; // CLASS_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                                data[it.index + 1] = Double.NaN; // CLASS_TYPE<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>                                                                double r1 = data[it.index];<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                                                double i1 = data[it.index + 1];<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                                data[it.index]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                                data[it.index + 1] = ((i1 - r1 * q) / den); // ADD_CAST<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>                                        }<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>                } else {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                        it.setOutputDouble(!useLong);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (useLong) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        data[it.aIndex]     /= it.bLong;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        data[it.aIndex + 1] /= it.bLong;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        } else {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                if (bds.isComplex()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        while (it.hasNext()) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                                double r1 = it.aDouble;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                                double r2 = it.bDouble;<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                double i1 = data[it.aIndex + 1];<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                                if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                        double q = r2/i2;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                                        double den = r2*q + i2;<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                                        data[it.aIndex]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                                        data[it.aIndex + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                } else {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                        double q = i2/r2;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                        double den = i2*q + r2;<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                        if (den == 0) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                                data[it.aIndex]     = Double.NaN; // CLASS_TYPE<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                                data[it.aIndex + 1] = Double.NaN; // CLASS_TYPE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                        } else {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                                                data[it.aIndex]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                                                data[it.aIndex + 1] = ((i1 - r1 * q) / den); // ADD_CAST<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>                                        }<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                } else {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                        while (it.hasNext()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                                data[it.aIndex]     /= it.bDouble;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                                data[it.aIndex + 1] /= it.bDouble;<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>                        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<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 ComplexDoubleDataset iremainder(final Object b) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                throw new UnsupportedOperationException("Unsupported method for class");<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 ComplexDoubleDataset ipower(final Object b) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setDirty();<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                if (bds.getSize() == 1) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        final IndexIterator it = getIterator();<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        final double r2 = bds.getElementDoubleAbs(0);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                }<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        } else {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(1));<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<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>                } else {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        it.setOutputDouble(true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        if (bds.isComplex()) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                while (it.hasNext()) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                        } else {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                while (it.hasNext()) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<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>                }<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, Dataset w, boolean ignoreNaNs) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                it.setOutputDouble(true);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                double sum = 0;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                double comp = 0;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                final int bis = bds.getElementsPerItem();<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>                if (bis == 1) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        if (w == null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                while (it.hasNext()) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        double diffi = data[it.aIndex + 1];<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                                continue;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                        }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        double err = diffr * diffr - comp;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                        double temp = sum + err;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        comp = (temp - sum) - err;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                        sum = temp;<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        err = diffi * diffi - comp;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        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>                        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                IndexIterator itw = w.getIterator();<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        double diffi = data[it.aIndex + 1];<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                                continue;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        double err = diffr * diffr * dw - comp;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        double temp = sum + err;<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        comp = (temp - sum) - err;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        sum = temp;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        err = diffi * diffi * dw - comp;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        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>                        }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                } else {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (w == null) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                while (it.hasNext()) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                                continue;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        double err = diffr * diffr - comp;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        double temp = sum + err;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        comp = (temp - sum) - err;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        sum = temp;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span><a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                        err = diffi * diffi - comp;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        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>                        } else {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                IndexIterator itw = w.getIterator();<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                                continue;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        double temp = sum + err;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        comp = (temp - sum) - err;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        sum = temp;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        err = diffi * diffi * dw - comp;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        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>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..67b7652
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
@@ -0,0 +1,1114 @@
+<!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>                        if (useLong) { // note no complex longs<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                while (it.hasNext()) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        while (it.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                data[it.index] += db;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                        final double vi = bds.getElementDoubleAbs(1);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                        while (it.hasNext()) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                                data[it.index]     += db;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                                data[it.index + 1] += vi;<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>                } else {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        it.setOutputDouble(!useLong);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        if (useLong) { // note no complex longs<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.aIndex] += it.bLong;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        } else {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                if (bds.isComplex()) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                        while (it.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                } else {<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.bDouble;<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 this;<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 ComplexFloatDataset isubtract(final Object b) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                setDirty();<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                if (bds.getSize() == 1) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        final IndexIterator it = getIterator();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        if (useLong) { // note no complex longs<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                while (it.hasNext()) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        data[it.index] -= lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        while (it.hasNext()) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                                data[it.index] -= db;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                        }<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                } else {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        final double vi = bds.getElementDoubleAbs(1);<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]     -= db;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                                data[it.index + 1] -= vi;<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>                } else {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        it.setOutputDouble(!useLong);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        if (useLong) { // note no complex longs<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                while (it.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                        data[it.aIndex] -= it.bLong;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                if (bds.isComplex()) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                        while (it.hasNext()) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        }<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                } else {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                        while (it.hasNext()) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                data[it.aIndex] -= it.bDouble;<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>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return this;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public ComplexFloatDataset imultiply(final Object b) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                setDirty();<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                if (bds.getSize() == 1) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator it = getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        if (useLong) { // note no complex longs<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                final long r2 = bds.getElementLongAbs(0);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                while (it.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                        data[it.index]     *= r2;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                        data[it.index + 1] *= r2;<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                }<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        } else {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                final double r2 = bds.getElementDoubleAbs(0);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                        while (it.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                                data[it.index]     *= r2;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                                data[it.index + 1] *= r2;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                        }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                } else {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                        final double i2 = bds.getElementDoubleAbs(1);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                        while (it.hasNext()) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                                double r1 = data[it.index];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                                double i1 = data[it.index + 1];<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                                data[it.index]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                data[it.index + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<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>                } else {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        it.setOutputDouble(!useLong);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        if (useLong) { // note no complex longs<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                while (it.hasNext()) {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                        data[it.aIndex + 1] *= it.bDouble;<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        } else {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                if (bds.isComplex()) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                        while (it.hasNext()) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                                double r1 = it.aDouble;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                                double r2 = it.bDouble;<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                                double i1 = data[it.aIndex + 1];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                data[it.aIndex]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                data[it.aIndex + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<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>                                                data[it.aIndex]     *= it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                                data[it.aIndex + 1] *= it.bDouble;<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>                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return this;<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>        public ComplexFloatDataset idivide(final Object b) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                setDirty();<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                if (bds.getSize() == 1) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        final IndexIterator it = getIterator();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        if (useLong) { // note no complex longs<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                final long r2 = bds.getElementLongAbs(0);<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                while (it.hasNext()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                        data[it.index]     /= r2;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                        data[it.index + 1] /= r2;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        } else {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                final double r2 = bds.getElementDoubleAbs(0);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                        while (it.hasNext()) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                                data[it.index]     /= r2;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                                data[it.index + 1] /= r2;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                } else {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        final double i2 = bds.getElementDoubleAbs(1);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                                double q = r2/i2;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                double den = r2*q + i2;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                while (it.hasNext()) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                                        double r1 = data[it.index];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                        double i1 = data[it.index + 1];<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                                        data[it.index]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                        data[it.index + 1] = (float) ((i1*q - r1) / den); // ADD_CAST<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                }<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                        } else {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                double q = i2/r2;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                                double den = i2*q + r2;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                                if (den == 0) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                                        while (it.hasNext()) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                                data[it.index]     = Float.NaN; // CLASS_TYPE<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                                data[it.index + 1] = Float.NaN; // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                        while (it.hasNext()) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                                                double r1 = data[it.index];<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                                                double i1 = data[it.index + 1];<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                                data[it.index]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                                data[it.index + 1] = (float) ((i1 - r1 * q) / den); // ADD_CAST<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>                                        }<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>                } else {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        it.setOutputDouble(!useLong);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        if (useLong) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                while (it.hasNext()) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        data[it.aIndex]     /= it.bLong;<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                        data[it.aIndex + 1] /= it.bLong;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                if (bds.isComplex()) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        while (it.hasNext()) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                                double r1 = it.aDouble;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                                double r2 = it.bDouble;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                                double i1 = data[it.aIndex + 1];<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                                if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                                        double q = r2/i2;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                                        double den = r2*q + i2;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                                        data[it.aIndex]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                                        data[it.aIndex + 1] = (float) ((i1*q - r1) / den); // ADD_CAST<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                                } else {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                                        double q = i2/r2;<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                        double den = i2*q + r2;<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                                        if (den == 0) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                                                data[it.aIndex]     = Float.NaN; // CLASS_TYPE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                                data[it.aIndex + 1] = Float.NaN; // CLASS_TYPE<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                                        } else {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                                                data[it.aIndex]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                                                data[it.aIndex + 1] = (float) ((i1 - r1 * q) / den); // ADD_CAST<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                        }<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>                                } else {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                        while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                data[it.aIndex]     /= it.bDouble;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                data[it.aIndex + 1] /= it.bDouble;<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>                        }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return this;<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 ComplexFloatDataset iremainder(final Object b) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                throw new UnsupportedOperationException("Unsupported method for class");<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>        @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        public ComplexFloatDataset ipower(final Object b) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                setDirty();<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                if (bds.getSize() == 1) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        final IndexIterator it = getIterator();<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        final double r2 = bds.getElementDoubleAbs(0);<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(1) == 0) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        } else {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(1));<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                while (it.hasNext()) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<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>                } else {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        it.setOutputDouble(true);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        if (bds.isComplex()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                while (it.hasNext()) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        } else {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                while (it.hasNext()) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<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>                return this;<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>        @Override<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        public double residual(final Object b, Dataset w, boolean ignoreNaNs) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                it.setOutputDouble(true);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                double sum = 0;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                double comp = 0;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                final int bis = bds.getElementsPerItem();<a name="line.961"></a>
+<span class="sourceLineNo">962</span><a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (bis == 1) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (w == null) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                while (it.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        double diffi = data[it.aIndex + 1];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                                continue;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                        double err = diffr * diffr - comp;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        double temp = sum + err;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                        comp = (temp - sum) - err;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        sum = temp;<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        err = diffi * diffi - comp;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                        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>                        } else {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                IndexIterator itw = w.getIterator();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        double diffi = data[it.aIndex + 1];<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                                continue;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        double err = diffr * diffr * dw - comp;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        double 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>                                        err = diffi * diffi * dw - comp;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        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>                        }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                } else {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                        if (w == null) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                while (it.hasNext()) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                                continue;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        }<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        double err = diffr * diffr - comp;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        double 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>                                        err = diffi * diffi - comp;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        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>                        } else {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                IndexIterator itw = w.getIterator();<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                continue;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        double 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>                                        err = diffi * diffi * dw - comp;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                        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>                        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..d550ef6
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
@@ -0,0 +1,2142 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundByteDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = (byte) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundByteDataset(final int itemSize, final byte[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundByteDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = (byte) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = (byte) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundByteDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final byte v = (byte) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = (byte) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundByteDataset other = (CompoundByteDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundByteDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundByteDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundByteDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundByteDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundByteDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundByteDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundByteDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundByteDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundByteDataset result = new CompoundByteDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundByteDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundByteDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundByteDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.INT8) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be byte"); // PRIM_TYPE<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be byte"); // PRIM_TYPE<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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundByteDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundByteDataset result = new CompoundByteDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 ByteDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                ByteDataset result = new ByteDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundByteDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                byte[] vr = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public byte[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundByteDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundByteDataset view = new CompoundByteDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         *<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public byte[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final byte[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final byte[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getByteArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getByteArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getByteArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getByteArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                byte[] oa = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toByteArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toByteArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toByteArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toByteArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         *<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final byte[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         *<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final byte[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         *<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final byte[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         *<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final byte[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = (byte) d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                byte[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundByteDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundByteDataset result = new CompoundByteDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public ByteDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                ByteDataset view = new ByteDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public ByteDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final ByteDataset elements = new ByteDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final byte[] elements = ((ByteDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final byte[] elements = ((ByteDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                byte[] rdata = ((CompoundByteDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundByteDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = (byte) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = (byte) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundByteDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = (byte) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundByteDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final byte bv = (byte) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = (byte) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundByteDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = (byte) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final byte[] val = DTypeUtils.toByteArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                return false;<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        @Override<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        public boolean containsInfs() {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                return false;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        @Override<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        public boolean containsInvalidNumbers() {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                return false;<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>        @Override<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public CompoundByteDataset iadd(final Object b) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                setDirty();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                int is = bds.getElementsPerItem();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                if (bds.getSize() == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        final IndexIterator it = getIterator();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        if (is == 1) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                if (useLong) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                        while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        while (it.hasNext()) {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                                        data[it.index + i] += db;<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>                        } else if (is == isize) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                if (useLong) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        while (it.hasNext()) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        while (it.hasNext()) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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>                        } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                } else {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        it.setOutputDouble(!useLong);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        if (is == 1) {<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>                                                final long lb = it.bLong;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                data[it.aIndex] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.aIndex + i] += lb;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                final double db = it.bDouble;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                data[it.aIndex] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        data[it.aIndex + i] += db;<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                }<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>                        } else if (is == isize) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                if (useLong) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                        while (it.hasNext()) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                data[it.aIndex] += it.bLong;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        while (it.hasNext()) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>        @Override<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>        public CompoundByteDataset isubtract(final Object b) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                setDirty();<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                int is = bds.getElementsPerItem();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                if (bds.getSize() == 1) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        final IndexIterator it = getIterator();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        if (is == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                if (useLong) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        while (it.hasNext()) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                        data[it.index + i] -= lb;<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                } else {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        } else if (is == isize) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                if (useLong) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<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] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                        } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                } else {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        it.setOutputDouble(!useLong);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                        if (is == 1) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                if (useLong) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                        while (it.hasNext()) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                final long lb = it.bLong;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                data[it.aIndex] += lb;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                final double db = it.bDouble;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                data[it.aIndex] += db;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        data[it.aIndex + i] -= db;<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 if (is == isize) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                if (useLong) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                        while (it.hasNext()) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                data[it.aIndex] += it.bLong;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        } else {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>        }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span><a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        @Override<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>        public CompoundByteDataset imultiply(final Object b) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                setDirty();<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                int is = bds.getElementsPerItem();<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                if (bds.getSize() == 1) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                if (is == 1) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (lb == 0) { // INT_USE<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                fill(0); // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else { // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        while (it.hasNext()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                } else if (is == isize) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                        while (it.hasNext()) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                try {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                } catch (ArithmeticException e) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        data[it.index + i] = 0;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                }<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>                                } else {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        if (db == 0) { // INT_USE<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                fill(0); // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        } else { // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        while (it.hasNext()) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                } else if (is == isize) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                        while (it.hasNext()) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                try {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                } catch (ArithmeticException e) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        data[it.index + i] = 0;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                }<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>                                } else {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        it.setOutputDouble(!useLong);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        if (useLong) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                if (is == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                final long lb = it.bLong;<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                if (lb == 0) { // INT_USE<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                        }// INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                } else { // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                } // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                } else if (is == isize) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        while (it.hasNext()) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                try {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } catch (ArithmeticException e) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        data[it.aIndex + i] = 0;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                }<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>                                } else {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                        } else {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                if (is == 1) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                final double db = it.bDouble;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                if (db == 0) { // INT_USE<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                        }// INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                } else { // INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                        data[it.aIndex + i] /= db;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                } // INT_USE<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                } else if (is == isize) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                        while (it.hasNext()) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                try {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                } catch (ArithmeticException e) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                return this;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span><a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        @Override<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        public CompoundByteDataset ifloor() {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                return this;<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>        @Override<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        public CompoundByteDataset iremainder(final Object b) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                setDirty();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                int is = bds.getElementsPerItem();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (bds.getSize() == 1) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        final IndexIterator it = getIterator();<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        if (useLong) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                if (is == 1) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                        if (lb == 0) { // INT_USE<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                fill(0); // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        } else { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                        while (it.hasNext()) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } else if (is == isize) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        while (it.hasNext()) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                try {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } catch (ArithmeticException e) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                } else {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                        } else {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                if (is == 1) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        if (db == 0) { // INT_USE<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                fill(0); // INT_USE<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        } else { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                        while (it.hasNext()) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                } else if (is == isize) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        while (it.hasNext()) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                try {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                } catch (ArithmeticException e) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        data[it.index + i] = 0;<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                }<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>                                } else {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                }<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                } else {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                        it.setOutputDouble(!useLong);<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        if (useLong) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                if (is == 1) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        while (it.hasNext()) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                final long lb = it.bLong;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                if (lb == 0) { // INT_USE<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                } else { // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                } // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                } else if (is == isize) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        while (it.hasNext()) {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                try {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                } catch (ArithmeticException e) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        data[it.aIndex + i] = 0;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                } else {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                final double db = it.bDouble;<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                if (db == 0) { // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                } else { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                        data[it.aIndex + i] %= db;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                } // INT_USE<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else if (is == isize) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                try {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                } catch (ArithmeticException e) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                } else {<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                return this;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        @Override<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        public CompoundByteDataset ipower(final Object b) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                setDirty();<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                final int is = bds.getElementsPerItem();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                if (bds.getSize() == 1) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(0);<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(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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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] = (byte) (long) 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>                                        double err = diff * diff - comp;<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        double temp = sum + err;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        comp = (temp - sum) - err;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        sum = temp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                err = diff * diff - comp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                temp = sum + err;<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                comp = (temp - sum) - err;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                sum = temp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                }<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        } else {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                IndexIterator itw = w.getIterator();<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        final double db = it.bDouble;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        double diff = it.aDouble - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        double err = diff * diff * dw - comp;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double temp = sum + err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        comp = (temp - sum) - err;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        sum = temp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                                err = diff * diff * dw - comp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                                temp = sum + err;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                comp = (temp - sum) - err;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                sum = temp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        }<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>                } else {<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                        if (w == null) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                while (it.hasNext()) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        double err = diff * diff - comp;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double temp = sum + err;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        comp = (temp - sum) - err;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        sum = temp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                err = diff * diff - comp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                temp = sum + err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                comp = (temp - sum) - err;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                sum = temp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        }<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                        } else {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                IndexIterator itw = w.getIterator();<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                temp = sum + err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                comp = (temp - sum) - err;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                sum = temp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                }<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                        }<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..c197410
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..e7b8cac
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
@@ -0,0 +1,2195 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundDoubleDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundDoubleDataset(final int itemSize, final double[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        <a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundDoubleDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundDoubleDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final double v = dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundDoubleDataset other = (CompoundDoubleDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundDoubleDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundDoubleDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundDoubleDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundDoubleDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * <a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundDoubleDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundDoubleDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundDoubleDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundDoubleDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundDoubleDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundDoubleDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundDoubleDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.FLOAT64) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be double"); // PRIM_TYPE <a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be double"); // PRIM_TYPE <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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundDoubleDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 DoubleDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                DoubleDataset result = new DoubleDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundDoubleDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                double[] vr = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public double[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundDoubleDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundDoubleDataset view = new CompoundDoubleDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * <a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public double[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final double[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return (long) data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final double[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getDoubleArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getDoubleArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getDoubleArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getDoubleArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                double[] oa = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toDoubleArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toDoubleArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * <a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final double[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         * <a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final double[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * <a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final double[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         * <a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final double[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                double[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundDoubleDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public DoubleDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                DoubleDataset view = new DoubleDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public DoubleDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final DoubleDataset elements = new DoubleDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final double[] elements = ((DoubleDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final double[] elements = ((DoubleDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                double[] rdata = ((CompoundDoubleDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundDoubleDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundDoubleDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundDoubleDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundDoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final double bv = it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundDoubleDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final double[] val = DTypeUtils.toDoubleArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                if (Double.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                        return true; // REAL_ONLY<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                        } // REAL_ONLY<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                } // REAL_ONLY<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 boolean containsInfs() {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                if (Double.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                        return true; // REAL_ONLY<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        } // REAL_ONLY<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } // REAL_ONLY<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                return false;<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>        @Override<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>        public boolean containsInvalidNumbers() {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                double x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        return true; // REAL_ONLY<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                        } // REAL_ONLY<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                } // REAL_ONLY<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                return false;<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>        @Override<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        public CompoundDoubleDataset iadd(final Object b) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                setDirty();<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                int is = bds.getElementsPerItem();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                if (bds.getSize() == 1) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        final IndexIterator it = getIterator();<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                        if (is == 1) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                if (useLong) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                        while (it.hasNext()) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                                        while (it.hasNext()) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                                                        data[it.index + i] += db;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                                }<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>                        } else if (is == isize) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                if (useLong) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        while (it.hasNext()) {<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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 {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                } else {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        it.setOutputDouble(!useLong);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                        if (is == 1) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                if (useLong) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        while (it.hasNext()) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                final long lb = it.bLong;<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += lb;<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] += lb;<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>                                } else {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        while (it.hasNext()) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                final double db = it.bDouble;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                data[it.aIndex] += db;<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                        } else if (is == isize) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                if (useLong) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                        while (it.hasNext()) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                data[it.aIndex] += it.bLong;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                        while (it.hasNext()) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                        } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                return this;<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>        @Override<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        public CompoundDoubleDataset isubtract(final Object b) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                setDirty();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                int is = bds.getElementsPerItem();<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                if (bds.getSize() == 1) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                        final IndexIterator it = getIterator();<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        if (is == 1) {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                if (useLong) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        while (it.hasNext()) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                        data[it.index + i] -= lb;<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                        }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                        while (it.hasNext()) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                        } else if (is == isize) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                if (useLong) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                        while (it.hasNext()) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                        } else {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        }<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                } else {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        it.setOutputDouble(!useLong);<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                        if (is == 1) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                if (useLong) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                final long lb = it.bLong;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                data[it.aIndex] += lb;<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        while (it.hasNext()) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                final double db = it.bDouble;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                data[it.aIndex] += db;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                        } else if (is == isize) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                if (useLong) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        while (it.hasNext()) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                data[it.aIndex] += it.bLong;<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                        while (it.hasNext()) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                        }<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                return this;<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>        @Override<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        public CompoundDoubleDataset imultiply(final Object b) {<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                setDirty();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                int is = bds.getElementsPerItem();<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                if (bds.getSize() == 1) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                if (is == 1) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        // if (lb == 0) { // INT_USE<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        //      fill(0); // INT_USE<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        // } else { // INT_USE<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        while (it.hasNext()) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                        data[it.index + i] /= lb;<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>                                        // } // INT_USE<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                } else if (is == isize) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                        while (it.hasNext()) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                }<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                        } else {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                if (is == 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                        // if (db == 0) { // INT_USE<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                        //      fill(0); // INT_USE<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        // } else { // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        while (it.hasNext()) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        data[it.index + i] /= db;<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>                                        // } // INT_USE<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } else if (is == isize) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        while (it.hasNext()) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        it.setOutputDouble(!useLong);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        if (useLong) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                if (is == 1) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                final long lb = it.bLong;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                // if (lb == 0) { // INT_USE<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                //      }// INT_USE<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                // } else { // INT_USE<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                // } // INT_USE<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (is == isize) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        } else {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (is == 1) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        while (it.hasNext()) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                final double db = it.bDouble;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                // if (db == 0) { // INT_USE<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                //      }// INT_USE<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                // } else { // INT_USE<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                        data[it.aIndex + i] /= db;<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                                }<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                                // } // INT_USE<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                        }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                } else if (is == isize) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<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>                                } else {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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 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 CompoundDoubleDataset ifloor() {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty(); // REAL_ONLY<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                data[it.index + i] = Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        } // REAL_ONLY<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                } // REAL_ONLY<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                return this;<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>        @Override<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        public CompoundDoubleDataset iremainder(final Object b) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                setDirty();<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                int is = bds.getElementsPerItem();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                if (bds.getSize() == 1) {<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                        final IndexIterator it = getIterator();<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        if (useLong) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                if (is == 1) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        // if (lb == 0) { // INT_USE<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        //      fill(0); // INT_USE<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        // } else { // INT_USE<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                        while (it.hasNext()) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                        data[it.index + i] %= lb;<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>                                        // } // INT_USE<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                } else if (is == isize) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                        while (it.hasNext()) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                }<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        } else {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                if (is == 1) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        // if (db == 0) { // INT_USE<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        //      fill(0); // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        // } else { // INT_USE<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>                                                        data[it.index + i] %= db;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                }<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        }<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        // } // INT_USE<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                } else if (is == isize) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        while (it.hasNext()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                        }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                } else {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                }<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                } else {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                        it.setOutputDouble(!useLong);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                        if (useLong) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                if (is == 1) {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                final long lb = it.bLong;<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                // if (lb == 0) { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                // } else { // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                // } // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        }<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                } else if (is == isize) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        while (it.hasNext()) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                }<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        } else {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                if (is == 1) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                        while (it.hasNext()) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                final double db = it.bDouble;<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                // if (db == 0) { // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                // } else { // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                        data[it.aIndex + i] %= db;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                }<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                // } // INT_USE<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                        }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                } else if (is == isize) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span><a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>        @Override<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        public CompoundDoubleDataset ipower(final Object b) {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                setDirty();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                final int is = bds.getElementsPerItem();<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                if (bds.getSize() == 1) {<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                        final IndexIterator it = getIterator();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        if (bds.isComplex()) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                if (vi == 0) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                        while (it.hasNext()) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                        // } else { // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                        // } // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                        }<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                } else {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        while (it.hasNext()) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                        // } else { // INT_USE<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        // } // INT_USE<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                        } else if (is == 1) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                while (it.hasNext()) {<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                                                // } else { // INT_USE<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                                // } // INT_USE<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                        }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                }<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        } else if (is == isize) {<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                while (it.hasNext()) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                // } else { // INT_USE<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                // } // INT_USE<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>                        }<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                } else {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        it.setOutputDouble(true);<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                        if (bds.isComplex()) {<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                while (it.hasNext()) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                        // } else { // INT_USE<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        // } // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                // } else { // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                                // } // INT_USE<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                        }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                        } else {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                while (it.hasNext()) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        // } else { // INT_USE<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                        // } // INT_USE<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                // } else { // INT_USE<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                // } // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                        }<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                }<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                        }<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                }<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                return this;<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>        @Override<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                it.setOutputDouble(true);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                double sum = 0;<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                double comp = 0;<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                final int bis = bds.getElementsPerItem();<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span><a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                if (bis == 1) {<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                        if (w == null) {<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                while (it.hasNext()) {<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        final double db = it.bDouble;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                        double diff = it.aDouble - db;<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                        continue; // REAL_ONLY<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                                                skip = true; // REAL_ONLY<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                                                break; // REAL_ONLY<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                        } // REAL_ONLY<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                } // REAL_ONLY<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                if (skip) { // REAL_ONLY<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                        continue; // REAL_ONLY<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                } // REAL_ONLY<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        } // REAL_ONLY<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        double err = diff * diff - comp;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        double temp = sum + err;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        comp = (temp - sum) - err;<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                        sum = temp;<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                err = diff * diff - comp;<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                temp = sum + err;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                                comp = (temp - sum) - err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                                sum = temp;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                        } else {<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                IndexIterator itw = w.getIterator();<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                        final double db = it.bDouble;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                        double diff = it.aDouble - db;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                        continue; // REAL_ONLY<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                                                skip = true; // REAL_ONLY<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                                                break; // REAL_ONLY<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                                        } // REAL_ONLY<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                                } // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                if (skip) { // REAL_ONLY<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                                        continue; // REAL_ONLY<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                } // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        } // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        double err = diff * diff * dw - comp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        double temp = sum + err;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        comp = (temp - sum) - err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                        sum = temp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                err = diff * diff * dw - comp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                                temp = sum + err;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                                comp = (temp - sum) - err;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                sum = temp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        }<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                }<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                        }<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                } else {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                        if (w == null) {<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                while (it.hasNext()) {<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                        continue; // REAL_ONLY<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                                skip = true; // REAL_ONLY<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                                break; // REAL_ONLY<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                                        } // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                } // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                if (skip) { // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                        continue; // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                } // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                        } // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double err = diff * diff - comp;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double temp = sum + err;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        comp = (temp - sum) - err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        sum = temp;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                err = diff * diff - comp;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                temp = sum + err;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                comp = (temp - sum) - err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                sum = temp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                        }<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                        } else {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                IndexIterator itw = w.getIterator();<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                                        continue; // REAL_ONLY<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                                                skip = true; // REAL_ONLY<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                                break; // REAL_ONLY<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                        } // REAL_ONLY<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                } // REAL_ONLY<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                if (skip) { // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                        continue; // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                } // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                        } // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                        double err = diff * diff * dw - comp;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                        double temp = sum + err;<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                        comp = (temp - sum) - err;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                        sum = temp;<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                                err = diff * diff * dw - comp;<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                                temp = sum + err;<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                                comp = (temp - sum) - err;<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                                sum = temp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                        }<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                }<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                        }<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                }<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..c37e183
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
@@ -0,0 +1,2195 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundFloatDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = (float) dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundFloatDataset(final int itemSize, final float[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundFloatDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = (float) datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = (float) datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundFloatDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final float v = (float) dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = (float) dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundFloatDataset other = (CompoundFloatDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundFloatDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundFloatDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundFloatDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundFloatDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundFloatDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundFloatDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundFloatDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundFloatDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundFloatDataset result = new CompoundFloatDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundFloatDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundFloatDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundFloatDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.FLOAT32) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be float"); // PRIM_TYPE<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be float"); // PRIM_TYPE<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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundFloatDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundFloatDataset result = new CompoundFloatDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 FloatDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                FloatDataset result = new FloatDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundFloatDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                float[] vr = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public float[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundFloatDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundFloatDataset view = new CompoundFloatDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         *<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public float[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final float[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return (long) data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final float[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getFloatArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getFloatArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getFloatArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getFloatArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                float[] oa = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toFloatArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toFloatArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         *<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final float[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         *<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final float[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         *<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final float[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         *<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final float[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = (float) d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                float[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundFloatDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundFloatDataset result = new CompoundFloatDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public FloatDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                FloatDataset view = new FloatDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public FloatDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final FloatDataset elements = new FloatDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final float[] elements = ((FloatDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final float[] elements = ((FloatDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                float[] rdata = ((CompoundFloatDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundFloatDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = (float) ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = (float) ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundFloatDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = (float) ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundFloatDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundFloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final float bv = (float) it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = (float) d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundFloatDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = (float) ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final float[] val = DTypeUtils.toFloatArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                if (Float.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                        return true; // REAL_ONLY<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                        } // REAL_ONLY<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                } // REAL_ONLY<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 boolean containsInfs() {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                if (Float.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                        return true; // REAL_ONLY<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        } // REAL_ONLY<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } // REAL_ONLY<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                return false;<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>        @Override<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>        public boolean containsInvalidNumbers() {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                float x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        return true; // REAL_ONLY<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                        } // REAL_ONLY<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                } // REAL_ONLY<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                return false;<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>        @Override<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        public CompoundFloatDataset iadd(final Object b) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                setDirty();<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                int is = bds.getElementsPerItem();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                if (bds.getSize() == 1) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        final IndexIterator it = getIterator();<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                        if (is == 1) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                if (useLong) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                        while (it.hasNext()) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                                        while (it.hasNext()) {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                                                        data[it.index + i] += db;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                                }<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>                        } else if (is == isize) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                if (useLong) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        while (it.hasNext()) {<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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 {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                } else {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        it.setOutputDouble(!useLong);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                        if (is == 1) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                if (useLong) {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        while (it.hasNext()) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                final long lb = it.bLong;<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += lb;<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] += lb;<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>                                } else {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        while (it.hasNext()) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                final double db = it.bDouble;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                data[it.aIndex] += db;<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                                        data[it.aIndex + i] += db;<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>                                }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                        } else if (is == isize) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                if (useLong) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                        while (it.hasNext()) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                data[it.aIndex] += it.bLong;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                        while (it.hasNext()) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                        } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                return this;<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>        @Override<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        public CompoundFloatDataset isubtract(final Object b) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                setDirty();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                int is = bds.getElementsPerItem();<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                if (bds.getSize() == 1) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                        final IndexIterator it = getIterator();<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        if (is == 1) {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                if (useLong) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        while (it.hasNext()) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                        data[it.index + i] -= lb;<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                        }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                        while (it.hasNext()) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                        } else if (is == isize) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                if (useLong) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                        while (it.hasNext()) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                        } else {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        }<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                } else {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        it.setOutputDouble(!useLong);<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                        if (is == 1) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                if (useLong) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        while (it.hasNext()) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                final long lb = it.bLong;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                data[it.aIndex] += lb;<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                        data[it.aIndex + i] -= lb;<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>                                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        while (it.hasNext()) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                final double db = it.bDouble;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                data[it.aIndex] += db;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                        data[it.aIndex + i] -= db;<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>                                }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                        } else if (is == isize) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                if (useLong) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        while (it.hasNext()) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                data[it.aIndex] += it.bLong;<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                        while (it.hasNext()) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                        }<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                return this;<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>        @Override<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        public CompoundFloatDataset imultiply(final Object b) {<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                setDirty();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                int is = bds.getElementsPerItem();<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                if (bds.getSize() == 1) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                if (is == 1) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        // if (lb == 0) { // INT_USE<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        //      fill(0); // INT_USE<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        // } else { // INT_USE<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        while (it.hasNext()) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                        data[it.index + i] /= lb;<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>                                        // } // INT_USE<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                } else if (is == isize) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                        while (it.hasNext()) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                }<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                        } else {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                if (is == 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                        // if (db == 0) { // INT_USE<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                        //      fill(0); // INT_USE<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        // } else { // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        while (it.hasNext()) {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        data[it.index + i] /= db;<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>                                        // } // INT_USE<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                } else if (is == isize) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                        while (it.hasNext()) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        it.setOutputDouble(!useLong);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        if (useLong) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                if (is == 1) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                final long lb = it.bLong;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                // if (lb == 0) { // INT_USE<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                //      }// INT_USE<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                // } else { // INT_USE<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                // } // INT_USE<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (is == isize) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        } else {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (is == 1) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        while (it.hasNext()) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                final double db = it.bDouble;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                // if (db == 0) { // INT_USE<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                //      }// INT_USE<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                // } else { // INT_USE<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                        data[it.aIndex + i] /= db;<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                                }<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                                // } // INT_USE<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                        }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                } else if (is == isize) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<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>                                } else {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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 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 CompoundFloatDataset ifloor() {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty(); // REAL_ONLY<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                data[it.index + i] = (float) Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        } // REAL_ONLY<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                } // REAL_ONLY<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                return this;<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>        @Override<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        public CompoundFloatDataset iremainder(final Object b) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                setDirty();<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                int is = bds.getElementsPerItem();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                if (bds.getSize() == 1) {<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                        final IndexIterator it = getIterator();<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        if (useLong) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                if (is == 1) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        // if (lb == 0) { // INT_USE<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        //      fill(0); // INT_USE<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        // } else { // INT_USE<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                        while (it.hasNext()) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                        data[it.index + i] %= lb;<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>                                        // } // INT_USE<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                } else if (is == isize) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                        while (it.hasNext()) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                }<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        } else {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                if (is == 1) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        // if (db == 0) { // INT_USE<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        //      fill(0); // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        // } else { // INT_USE<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>                                                        data[it.index + i] %= db;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                }<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                        }<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        // } // INT_USE<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                } else if (is == isize) {<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        while (it.hasNext()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                        }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                } else {<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                }<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                } else {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                        it.setOutputDouble(!useLong);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                        if (useLong) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                if (is == 1) {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                final long lb = it.bLong;<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                // if (lb == 0) { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                // } else { // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                // } // INT_USE<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        }<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                } else if (is == isize) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        while (it.hasNext()) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<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>                                } else {<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                }<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        } else {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                if (is == 1) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                        while (it.hasNext()) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                final double db = it.bDouble;<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                // if (db == 0) { // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                // } else { // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                        data[it.aIndex + i] %= db;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                }<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                // } // INT_USE<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                        }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                } else if (is == isize) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        while (it.hasNext()) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<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>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span><a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>        @Override<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        public CompoundFloatDataset ipower(final Object b) {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                setDirty();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                final int is = bds.getElementsPerItem();<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                if (bds.getSize() == 1) {<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                        final IndexIterator it = getIterator();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        if (bds.isComplex()) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                if (vi == 0) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                                        while (it.hasNext()) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                        // } else { // INT_USE<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                        // } // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                        }<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                } else {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        while (it.hasNext()) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                        // } else { // INT_USE<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        // } // INT_USE<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                }<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                        }<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                        } else if (is == 1) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                while (it.hasNext()) {<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                                                // } else { // INT_USE<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                                // } // INT_USE<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                        }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                }<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        } else if (is == isize) {<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                while (it.hasNext()) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                // } else { // INT_USE<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                // } // INT_USE<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>                        }<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                } else {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        it.setOutputDouble(true);<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                        if (bds.isComplex()) {<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                while (it.hasNext()) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                        // } else { // INT_USE<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        // } // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                // } else { // INT_USE<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                                // } // INT_USE<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                        }<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                        } else {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                while (it.hasNext()) {<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        // } else { // INT_USE<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                        // } // INT_USE<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                // } else { // INT_USE<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                // } // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                        }<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                }<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                        }<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                }<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                return this;<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>        @Override<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                it.setOutputDouble(true);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                double sum = 0;<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                double comp = 0;<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                final int bis = bds.getElementsPerItem();<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span><a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                if (bis == 1) {<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                        if (w == null) {<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                while (it.hasNext()) {<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        final double db = it.bDouble;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                                        double diff = it.aDouble - db;<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                                        continue; // REAL_ONLY<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                                                skip = true; // REAL_ONLY<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                                                break; // REAL_ONLY<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                        } // REAL_ONLY<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                } // REAL_ONLY<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                if (skip) { // REAL_ONLY<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                        continue; // REAL_ONLY<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                } // REAL_ONLY<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        } // REAL_ONLY<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                        double err = diff * diff - comp;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                        double temp = sum + err;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        comp = (temp - sum) - err;<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                        sum = temp;<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                                err = diff * diff - comp;<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                                temp = sum + err;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                                comp = (temp - sum) - err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                                sum = temp;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        }<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                }<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                        } else {<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                IndexIterator itw = w.getIterator();<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                        final double db = it.bDouble;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                        double diff = it.aDouble - db;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                        continue; // REAL_ONLY<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                                                skip = true; // REAL_ONLY<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                                                break; // REAL_ONLY<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                                        } // REAL_ONLY<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                                } // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                if (skip) { // REAL_ONLY<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                                        continue; // REAL_ONLY<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                } // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        } // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                        double err = diff * diff * dw - comp;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        double temp = sum + err;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        comp = (temp - sum) - err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                        sum = temp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                                err = diff * diff * dw - comp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                                temp = sum + err;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                                comp = (temp - sum) - err;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                sum = temp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        }<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                }<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                        }<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                } else {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                        if (w == null) {<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                while (it.hasNext()) {<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                        continue; // REAL_ONLY<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                                skip = true; // REAL_ONLY<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                                break; // REAL_ONLY<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                                        } // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                } // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                if (skip) { // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                        continue; // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                } // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                        } // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                        double err = diff * diff - comp;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                        double temp = sum + err;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        comp = (temp - sum) - err;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        sum = temp;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                                err = diff * diff - comp;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                                temp = sum + err;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                comp = (temp - sum) - err;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                sum = temp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                        }<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                }<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                        } else {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                IndexIterator itw = w.getIterator();<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                                        continue; // REAL_ONLY<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                                                skip = true; // REAL_ONLY<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                                break; // REAL_ONLY<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                        } // REAL_ONLY<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                } // REAL_ONLY<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                if (skip) { // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                        continue; // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                } // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                        } // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                        double err = diff * diff * dw - comp;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                        double temp = sum + err;<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                        comp = (temp - sum) - err;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                        sum = temp;<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                                err = diff * diff * dw - comp;<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                                temp = sum + err;<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                                comp = (temp - sum) - err;<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                                sum = temp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                        }<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                }<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                        }<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                }<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..1436f6f
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
@@ -0,0 +1,2142 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundIntegerDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = (int) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundIntegerDataset(final int itemSize, final int[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundIntegerDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = (int) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = (int) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundIntegerDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final int v = (int) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = (int) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundIntegerDataset other = (CompoundIntegerDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundIntegerDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundIntegerDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundIntegerDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundIntegerDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundIntegerDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundIntegerDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundIntegerDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundIntegerDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundIntegerDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundIntegerDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundIntegerDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.INT32) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be int"); // PRIM_TYPE<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be int"); // PRIM_TYPE<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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundIntegerDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 IntegerDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                IntegerDataset result = new IntegerDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundIntegerDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                int[] vr = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public int[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundIntegerDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundIntegerDataset view = new CompoundIntegerDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         *<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public int[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final int[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final int[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getIntArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getIntArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getIntArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getIntArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                int[] oa = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toIntegerArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toIntegerArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         *<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final int[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         *<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final int[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         *<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final int[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         *<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final int[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = (int) d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                int[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundIntegerDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public IntegerDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                IntegerDataset view = new IntegerDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public IntegerDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final IntegerDataset elements = new IntegerDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final int[] elements = ((IntegerDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final int[] elements = ((IntegerDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                int[] rdata = ((CompoundIntegerDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundIntegerDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = (int) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = (int) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundIntegerDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = (int) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundIntegerDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundIntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final int bv = (int) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = (int) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundIntegerDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = (int) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final int[] val = DTypeUtils.toIntegerArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                return false;<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        @Override<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        public boolean containsInfs() {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                return false;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        @Override<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        public boolean containsInvalidNumbers() {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                return false;<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>        @Override<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public CompoundIntegerDataset iadd(final Object b) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                setDirty();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                int is = bds.getElementsPerItem();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                if (bds.getSize() == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        final IndexIterator it = getIterator();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        if (is == 1) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                if (useLong) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                        while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        while (it.hasNext()) {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                                        data[it.index + i] += db;<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>                        } else if (is == isize) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                if (useLong) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        while (it.hasNext()) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        while (it.hasNext()) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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>                        } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                } else {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        it.setOutputDouble(!useLong);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        if (is == 1) {<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>                                                final long lb = it.bLong;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                data[it.aIndex] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.aIndex + i] += lb;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                final double db = it.bDouble;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                data[it.aIndex] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        data[it.aIndex + i] += db;<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                }<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>                        } else if (is == isize) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                if (useLong) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                        while (it.hasNext()) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                data[it.aIndex] += it.bLong;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        while (it.hasNext()) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>        @Override<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>        public CompoundIntegerDataset isubtract(final Object b) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                setDirty();<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                int is = bds.getElementsPerItem();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                if (bds.getSize() == 1) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        final IndexIterator it = getIterator();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        if (is == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                if (useLong) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        while (it.hasNext()) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                        data[it.index + i] -= lb;<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                } else {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        } else if (is == isize) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                if (useLong) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<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] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                        } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                } else {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        it.setOutputDouble(!useLong);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                        if (is == 1) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                if (useLong) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                        while (it.hasNext()) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                final long lb = it.bLong;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                data[it.aIndex] += lb;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                final double db = it.bDouble;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                data[it.aIndex] += db;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        data[it.aIndex + i] -= db;<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 if (is == isize) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                if (useLong) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                        while (it.hasNext()) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                data[it.aIndex] += it.bLong;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        } else {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>        }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span><a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        @Override<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>        public CompoundIntegerDataset imultiply(final Object b) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                setDirty();<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                int is = bds.getElementsPerItem();<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                if (bds.getSize() == 1) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                if (is == 1) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (lb == 0) { // INT_USE<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                fill(0); // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else { // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        while (it.hasNext()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                } else if (is == isize) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                        while (it.hasNext()) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                try {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                } catch (ArithmeticException e) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        data[it.index + i] = 0;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                }<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>                                } else {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        if (db == 0) { // INT_USE<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                fill(0); // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        } else { // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        while (it.hasNext()) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                } else if (is == isize) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                        while (it.hasNext()) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                try {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                } catch (ArithmeticException e) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        data[it.index + i] = 0;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                }<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>                                } else {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        it.setOutputDouble(!useLong);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        if (useLong) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                if (is == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                final long lb = it.bLong;<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                if (lb == 0) { // INT_USE<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                        }// INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                } else { // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                } // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                } else if (is == isize) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        while (it.hasNext()) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                try {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } catch (ArithmeticException e) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        data[it.aIndex + i] = 0;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                }<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>                                } else {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                        } else {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                if (is == 1) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                final double db = it.bDouble;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                if (db == 0) { // INT_USE<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                        }// INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                } else { // INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                        data[it.aIndex + i] /= db;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                } // INT_USE<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                } else if (is == isize) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                        while (it.hasNext()) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                try {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                } catch (ArithmeticException e) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                return this;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span><a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        @Override<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        public CompoundIntegerDataset ifloor() {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                return this;<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>        @Override<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        public CompoundIntegerDataset iremainder(final Object b) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                setDirty();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                int is = bds.getElementsPerItem();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (bds.getSize() == 1) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        final IndexIterator it = getIterator();<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        if (useLong) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                if (is == 1) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                        if (lb == 0) { // INT_USE<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                fill(0); // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        } else { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                        while (it.hasNext()) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } else if (is == isize) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        while (it.hasNext()) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                try {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } catch (ArithmeticException e) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                } else {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                        } else {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                if (is == 1) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        if (db == 0) { // INT_USE<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                fill(0); // INT_USE<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        } else { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                        while (it.hasNext()) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                } else if (is == isize) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        while (it.hasNext()) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                try {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                } catch (ArithmeticException e) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        data[it.index + i] = 0;<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                }<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>                                } else {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                }<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                } else {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                        it.setOutputDouble(!useLong);<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        if (useLong) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                if (is == 1) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        while (it.hasNext()) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                final long lb = it.bLong;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                if (lb == 0) { // INT_USE<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                } else { // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                } // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                } else if (is == isize) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        while (it.hasNext()) {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                try {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                } catch (ArithmeticException e) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        data[it.aIndex + i] = 0;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                } else {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                final double db = it.bDouble;<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                if (db == 0) { // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                } else { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                        data[it.aIndex + i] %= db;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                } // INT_USE<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else if (is == isize) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                try {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                } catch (ArithmeticException e) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                } else {<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                return this;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        @Override<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        public CompoundIntegerDataset ipower(final Object b) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                setDirty();<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                final int is = bds.getElementsPerItem();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                if (bds.getSize() == 1) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(0);<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(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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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] = (int) (long) 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>                                        double err = diff * diff - comp;<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        double temp = sum + err;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        comp = (temp - sum) - err;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        sum = temp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                err = diff * diff - comp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                temp = sum + err;<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                comp = (temp - sum) - err;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                sum = temp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                }<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        } else {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                IndexIterator itw = w.getIterator();<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        final double db = it.bDouble;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        double diff = it.aDouble - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        double err = diff * diff * dw - comp;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double temp = sum + err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        comp = (temp - sum) - err;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        sum = temp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                                err = diff * diff * dw - comp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                                temp = sum + err;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                comp = (temp - sum) - err;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                sum = temp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        }<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>                } else {<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                        if (w == null) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                while (it.hasNext()) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        double err = diff * diff - comp;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double temp = sum + err;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        comp = (temp - sum) - err;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        sum = temp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                err = diff * diff - comp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                temp = sum + err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                comp = (temp - sum) - err;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                sum = temp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        }<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                        } else {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                IndexIterator itw = w.getIterator();<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                temp = sum + err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                comp = (temp - sum) - err;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                sum = temp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                }<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                        }<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..2a29258
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
@@ -0,0 +1,2142 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundLongDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundLongDataset(final int itemSize, final long[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundLongDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundLongDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final long v = dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundLongDataset other = (CompoundLongDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundLongDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundLongDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundLongDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundLongDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundLongDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundLongDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundLongDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundLongDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundLongDataset result = new CompoundLongDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundLongDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundLongDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundLongDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.INT64) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be long"); // PRIM_TYPE<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be long"); // PRIM_TYPE<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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundLongDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundLongDataset result = new CompoundLongDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 LongDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                LongDataset result = new LongDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundLongDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                long[] vr = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public long[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundLongDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundLongDataset view = new CompoundLongDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         *<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public long[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final long[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final long[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getLongArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getLongArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getLongArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getLongArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                long[] oa = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toLongArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toLongArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toLongArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toLongArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         *<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final long[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         *<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final long[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         *<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final long[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         *<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final long[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = (long) d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                long[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundLongDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundLongDataset result = new CompoundLongDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public LongDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                LongDataset view = new LongDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public LongDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final LongDataset elements = new LongDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final long[] elements = ((LongDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final long[] elements = ((LongDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                long[] rdata = ((CompoundLongDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundLongDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundLongDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundLongDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundLongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final long bv = it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundLongDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final long[] val = DTypeUtils.toLongArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                return false;<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        @Override<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        public boolean containsInfs() {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                return false;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        @Override<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        public boolean containsInvalidNumbers() {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                return false;<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>        @Override<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public CompoundLongDataset iadd(final Object b) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                setDirty();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                int is = bds.getElementsPerItem();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                if (bds.getSize() == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        final IndexIterator it = getIterator();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        if (is == 1) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                if (useLong) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                        while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        while (it.hasNext()) {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                                        data[it.index + i] += db;<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>                        } else if (is == isize) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                if (useLong) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        while (it.hasNext()) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        while (it.hasNext()) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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>                        } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                } else {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        it.setOutputDouble(!useLong);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        if (is == 1) {<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>                                                final long lb = it.bLong;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                data[it.aIndex] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.aIndex + i] += lb;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                final double db = it.bDouble;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                data[it.aIndex] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        data[it.aIndex + i] += db;<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                }<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>                        } else if (is == isize) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                if (useLong) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                        while (it.hasNext()) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                data[it.aIndex] += it.bLong;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        while (it.hasNext()) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>        @Override<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>        public CompoundLongDataset isubtract(final Object b) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                setDirty();<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                int is = bds.getElementsPerItem();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                if (bds.getSize() == 1) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        final IndexIterator it = getIterator();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        if (is == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                if (useLong) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        while (it.hasNext()) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                        data[it.index + i] -= lb;<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                } else {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        } else if (is == isize) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                if (useLong) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<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] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                        } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                } else {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        it.setOutputDouble(!useLong);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                        if (is == 1) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                if (useLong) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                        while (it.hasNext()) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                final long lb = it.bLong;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                data[it.aIndex] += lb;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                final double db = it.bDouble;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                data[it.aIndex] += db;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        data[it.aIndex + i] -= db;<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 if (is == isize) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                if (useLong) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                        while (it.hasNext()) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                data[it.aIndex] += it.bLong;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        } else {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>        }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span><a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        @Override<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>        public CompoundLongDataset imultiply(final Object b) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                setDirty();<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                int is = bds.getElementsPerItem();<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                if (bds.getSize() == 1) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                if (is == 1) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (lb == 0) { // INT_USE<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                fill(0); // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else { // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        while (it.hasNext()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                } else if (is == isize) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                        while (it.hasNext()) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                try {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                } catch (ArithmeticException e) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        data[it.index + i] = 0;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                }<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>                                } else {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        if (db == 0) { // INT_USE<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                fill(0); // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        } else { // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        while (it.hasNext()) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                } else if (is == isize) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                        while (it.hasNext()) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                try {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                } catch (ArithmeticException e) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        data[it.index + i] = 0;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                }<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>                                } else {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        it.setOutputDouble(!useLong);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        if (useLong) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                if (is == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                final long lb = it.bLong;<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                if (lb == 0) { // INT_USE<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                        }// INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                } else { // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                } // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                } else if (is == isize) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        while (it.hasNext()) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                try {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } catch (ArithmeticException e) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        data[it.aIndex + i] = 0;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                }<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>                                } else {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                        } else {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                if (is == 1) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                final double db = it.bDouble;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                if (db == 0) { // INT_USE<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                        }// INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                } else { // INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                        data[it.aIndex + i] /= db;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                } // INT_USE<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                } else if (is == isize) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                        while (it.hasNext()) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                try {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                } catch (ArithmeticException e) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                return this;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span><a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        @Override<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        public CompoundLongDataset ifloor() {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                return this;<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>        @Override<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        public CompoundLongDataset iremainder(final Object b) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                setDirty();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                int is = bds.getElementsPerItem();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (bds.getSize() == 1) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        final IndexIterator it = getIterator();<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        if (useLong) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                if (is == 1) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                        if (lb == 0) { // INT_USE<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                fill(0); // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        } else { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                        while (it.hasNext()) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } else if (is == isize) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        while (it.hasNext()) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                try {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } catch (ArithmeticException e) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                } else {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                        } else {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                if (is == 1) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        if (db == 0) { // INT_USE<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                fill(0); // INT_USE<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        } else { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                        while (it.hasNext()) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                } else if (is == isize) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        while (it.hasNext()) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                try {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                } catch (ArithmeticException e) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        data[it.index + i] = 0;<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                }<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>                                } else {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                }<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                } else {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                        it.setOutputDouble(!useLong);<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        if (useLong) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                if (is == 1) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        while (it.hasNext()) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                final long lb = it.bLong;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                if (lb == 0) { // INT_USE<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                } else { // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                } // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                } else if (is == isize) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        while (it.hasNext()) {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                try {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                } catch (ArithmeticException e) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        data[it.aIndex + i] = 0;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                } else {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                final double db = it.bDouble;<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                if (db == 0) { // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                } else { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                        data[it.aIndex + i] %= db;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                } // INT_USE<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else if (is == isize) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                try {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                } catch (ArithmeticException e) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                } else {<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                return this;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        @Override<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        public CompoundLongDataset ipower(final Object b) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                setDirty();<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                final int is = bds.getElementsPerItem();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                if (bds.getSize() == 1) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(0);<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(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] = (long) 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] = (long) 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] = (long) 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] = (long) 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] = (long) 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] = (long) 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] = (long) 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] = (long) 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>                                        double err = diff * diff - comp;<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        double temp = sum + err;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        comp = (temp - sum) - err;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        sum = temp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                err = diff * diff - comp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                temp = sum + err;<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                comp = (temp - sum) - err;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                sum = temp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                }<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        } else {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                IndexIterator itw = w.getIterator();<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        final double db = it.bDouble;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        double diff = it.aDouble - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        double err = diff * diff * dw - comp;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double temp = sum + err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        comp = (temp - sum) - err;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        sum = temp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                                err = diff * diff * dw - comp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                                temp = sum + err;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                comp = (temp - sum) - err;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                sum = temp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        }<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>                } else {<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                        if (w == null) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                while (it.hasNext()) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        double err = diff * diff - comp;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double temp = sum + err;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        comp = (temp - sum) - err;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        sum = temp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                err = diff * diff - comp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                temp = sum + err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                comp = (temp - sum) - err;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                sum = temp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        }<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                        } else {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                IndexIterator itw = w.getIterator();<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                temp = sum + err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                comp = (temp - sum) - err;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                sum = temp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                }<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                        }<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..e6b47e5
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
@@ -0,0 +1,2142 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        } else {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                offset = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                stride = null;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                base = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                odata = data = createArray(size);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                IndexIterator iter = dataset.getIterator();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                for (int j = 0; iter.hasNext();) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                                data[j++] = dataset.data[iter.index + i];<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>                } catch (Throwable t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        throw new IllegalArgumentException(t);<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><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Create a dataset using given dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        CompoundShortDataset(final CompoundDataset dataset) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                copyToView(dataset, this, true, false);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                offset = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                stride = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                base = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                isize = dataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        odata = data = createArray(size);<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>                IndexIterator iter = dataset.getIterator();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = 0; iter.hasNext();) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[j++] = (short) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<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>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Create a dataset using given data (elements are grouped together)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param itemSize<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param data<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param shape<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         *            (can be null to create 1D dataset)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        CompoundShortDataset(final int itemSize, final short[] data, int... shape) { // PRIM_TYPE<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                isize = itemSize;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (data != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                shape = new int[] { data.length / isize };<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        size = ShapeUtils.calcSize(shape);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (size * isize != data.length) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        odata = this.data = data;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset using given datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param datasets<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        CompoundShortDataset(final Dataset... datasets) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (datasets.length &lt; 1) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<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>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        datasets[0].checkCompatibility(datasets[i]);<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>                isize = datasets.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                shape = datasets[0].getShape();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                try {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        odata = data = createArray(size);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                } catch (Throwable t) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        throw new IllegalArgumentException(t);<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>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        iters[i] = datasets[i].getIterator();<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>                for (int j = 0; iters[0].hasNext();) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        data[j++] = (short) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                iters[i].hasNext();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                data[j++] = (short) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<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><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        /**<a name="line.204"></a>
+<span class="sourceLineNo">205</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.205"></a>
+<span class="sourceLineNo">206</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * elements from the given dataset.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param itemSize<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param repeat<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            repeat first element<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        CompoundShortDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                isize = itemSize;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                size = dataset.getSize();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                shape = dataset.getShape();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                name = new String(dataset.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        odata = data = createArray(size);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } catch (Throwable t) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        throw new IllegalArgumentException(t);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                final int os = dataset.getElementsPerItem();<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                IndexIterator iter = dataset.getIterator();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (repeat) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        int i = 0;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        while (iter.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                final short v = (short) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        data[i++] = v;<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>                        final int kmax = Math.min(isize, os);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        int i = 0;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        while (iter.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        data[i + k] = (short) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                i += isize;<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>        }<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 boolean equals(Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (!super.equals(obj)) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        return true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                CompoundShortDataset other = (CompoundShortDataset) obj;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator iter = getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                IndexIterator oiter = other.getIterator();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        return false;<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>                return true;<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public int hashCode() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return super.hashCode();<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 CompoundShortDataset clone() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return new CompoundShortDataset(this);<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>        /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * elemental dataset<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 with contents given by input<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        static CompoundShortDataset createFromObject(final Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                return (CompoundShortDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<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>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * sequences or arrays are padded with zeros.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param itemSize<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param obj<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return dataset with contents given by input<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static CompoundShortDataset createFromObject(final int itemSize, final Object obj) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return new CompoundShortDataset(itemSize, result.getData(), null);<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>         * @param stop<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        static CompoundShortDataset createRange(final int itemSize, final double stop) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return createRange(itemSize, 0., stop, 1.);<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>         * @param start<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @param stop<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param step<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        static CompoundShortDataset createRange(final int itemSize, final double start, final double stop,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                int size = calcSteps(start, stop, step);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                CompoundShortDataset result = new CompoundShortDataset(itemSize, new int[] { size });<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                for (int i = 0; i &lt; size; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        result.data[i * result.isize] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return result;<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 shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return a dataset filled with ones<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        static CompoundShortDataset ones(final int itemSize, final int... shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return new CompoundShortDataset(itemSize, shape).fill(1);<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>         * Create a compound dataset using last dimension of given dataset<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param a<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @param shareData<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return compound dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static CompoundShortDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (a.getElementsPerItem() != 1) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        logger.error("Need a single-element dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                if (a.getDType() != Dataset.INT16) { // DATA_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        logger.error("Dataset type must be short"); // PRIM_TYPE<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        throw new IllegalArgumentException("Dataset type must be short"); // PRIM_TYPE<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>                final int[] shape = a.getShapeRef();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (shape == null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new CompoundShortDataset(0);<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>                final int rank = shape.length - 1;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                CompoundShortDataset result = new CompoundShortDataset(is);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.setName(a.getName());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.setData();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return result;<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 ShortDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                ShortDataset result = new ShortDataset(); // CLASS_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                final int is = getElementsPerItem();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                if (is != 1)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        nshape[rank-1] = is;<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>                result.shape = nshape;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.odata = shareData ? data : data.clone();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.setName(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.setData();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return result;<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public CompoundShortDataset fill(final Object obj) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                setDirty();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                short[] vr = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IndexIterator iter = getIterator();<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                while (iter.hasNext()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<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><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return data buffer as linear array<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public short[] getData() { // PRIM_TYPE<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return data;<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>        protected int getBufferLength() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                if (data == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        return 0;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public CompoundShortDataset getView(boolean deepCopyMetadata) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                CompoundShortDataset view = new CompoundShortDataset(isize);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                view.setData();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return view;<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>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         *<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @param index<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *            absolute index<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return values<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public short[] getAbs(final int index) { // PRIM_TYPE<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result[i] = data[index + i];<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return result;<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>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param index<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            absolute index<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param values<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public void getAbs(final int index, final short[] values) { // PRIM_TYPE<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        values[i] = data[index + i];<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>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        if (data[index + i] == 0) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                return false;<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>                return true;<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 double getElementDoubleAbs(final int index) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[index];<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 getElementLongAbs(final int index) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return data[index]; // OMIT_CAST_INT<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                setDirty();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        data[dindex + i] = dsrc[sindex + i];<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>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         *<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param index<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         *            absolute index<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param val<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         *            new values<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public void setAbs(final int index, final short[] val) { // PRIM_TYPE<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                setDirty();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        data[index + i] = val[i];<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><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
+<span class="sourceLineNo">502</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.502"></a>
+<span class="sourceLineNo">503</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param index<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         *            absolute index<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param val<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *            new value<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                setDirty();<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                data[index] = val;<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 Object getObject() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return getShortArray(); // PRIM_TYPE<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 Object getObject(final int i) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return getShortArray(i); // PRIM_TYPE<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 Object getObject(final int i, final int j) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return getShortArray(i, j); // PRIM_TYPE<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 Object getObject(final int... pos) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return getShortArray(pos); // PRIM_TYPE<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 byte[] getByteArray() {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                byte[] result = new byte[isize];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                int index = getFirst1DIndex();<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                return result;<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>        @Override<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public byte[] getByteArray(final int i) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                byte[] result = new byte[isize];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                int index = get1DIndex(i);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                return result;<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>        @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                byte[] result = new byte[isize];<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                int index = get1DIndex(i, j);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                return result;<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 byte[] getByteArray(final int... pos) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                byte[] result = new byte[isize];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                int index = get1DIndex(pos);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return result;<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>        @Override<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        public short[] getShortArray() {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                short[] result = new short[isize];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                int index = getFirst1DIndex();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                }<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>        public short[] getShortArray(final int i) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                short[] result = new short[isize];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                int index = get1DIndex(i);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return result;<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>        @Override<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        public short[] getShortArray(final int i, final int j) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                short[] result = new short[isize];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                int index = get1DIndex(i, j);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return result;<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 short[] getShortArray(final int... pos) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                short[] result = new short[isize];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int index = get1DIndex(pos);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return result;<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public int[] getIntArray() {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                int[] result = new int[isize];<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                int index = getFirst1DIndex();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return result;<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>        @Override<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        public int[] getIntArray(final int i) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] result = new int[isize];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                int index = get1DIndex(i);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return result;<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>        @Override<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public int[] getIntArray(final int i, final int j) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                int[] result = new int[isize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                int index = get1DIndex(i, j);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return result;<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>        @Override<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        public int[] getIntArray(final int... pos) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int[] result = new int[isize];<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int index = get1DIndex(pos);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return result;<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 long[] getLongArray() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                long[] result = new long[isize];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                int index = getFirst1DIndex();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                return result;<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>        @Override<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        public long[] getLongArray(final int i) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                long[] result = new long[isize];<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int index = get1DIndex(i);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                return result;<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 long[] getLongArray(final int i, final int j) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                long[] result = new long[isize];<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                int index = get1DIndex(i, j);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                }<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 long[] getLongArray(final int... pos) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                long[] result = new long[isize];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int index = get1DIndex(pos);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                return result;<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>        @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public float[] getFloatArray() {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                float[] result = new float[isize];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                int index = getFirst1DIndex();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return result;<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>        @Override<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float[] getFloatArray(final int i) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                float[] result = new float[isize];<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                int index = get1DIndex(i);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                return result;<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>        @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                float[] result = new float[isize];<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                int index = get1DIndex(i, j);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return result;<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 float[] getFloatArray(final int... pos) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                float[] result = new float[isize];<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                int index = get1DIndex(pos);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                return result;<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>        @Override<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        public double[] getDoubleArray() {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                double[] result = new double[isize];<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                int index = getFirst1DIndex();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                return result;<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>        @Override<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public double[] getDoubleArray(final int i) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                double[] result = new double[isize];<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                int index = get1DIndex(i);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                return result;<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>        @Override<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                double[] result = new double[isize];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                int index = get1DIndex(i, j);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                return result;<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>        @Override<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public double[] getDoubleArray(final int... pos) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                double[] result = new double[isize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                int index = get1DIndex(pos);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                return result;<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>        @Override<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        darray[i] = data[index + i];<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                }<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>        @Override<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        public String getString() {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return getStringAbs(getFirst1DIndex());<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>        @Override<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public String getString(final int i) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public String getString(final int i, final int j) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        public String getString(final int... pos) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                return getStringAbs(get1DIndex(pos));<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Override<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        protected double getFirstValue() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return data[getFirst1DIndex()];<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>        protected double getFirstValue(int i) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return data[get1DIndex(i)];<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>        @Override<a name="line.812"></a>
+<span class="sourceLineNo">813</span>        protected double getFirstValue(int i, int j) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return data[get1DIndex(i, j)];<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>        protected double getFirstValue(final int... pos) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                return data[get1DIndex(pos)];<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>        @Override<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public Object getObjectAbs(final int index) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        result[i] = data[index + i];<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return result;<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 String getStringAbs(final int index) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                StringBuilder s = new StringBuilder();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                s.append('(');<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        stringFormat.format(data[index]));<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        s.append(' ');<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                stringFormat.format(data[index + i]));<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                s.append(')');<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                return s.toString();<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>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                short[] oa = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                setAbs(index, oa);<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>        @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public void set(final Object obj) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                setItem(DTypeUtils.toShortArray(obj, isize)); // CLASS_TYPE<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 set(final Object obj, final int i) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                setItem(DTypeUtils.toShortArray(obj, isize), i); // CLASS_TYPE<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>        @Override<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        public void set(final Object obj, final int i, final int j) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                setItem(DTypeUtils.toShortArray(obj, isize), i, j); // CLASS_TYPE<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>        @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        public void set(final Object obj, int... pos) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toShortArray(obj, isize), pos); // CLASS_TYPE<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>         * Set values at first position. The dataset must not be null<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         *<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param d<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @since 2.0<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void setItem(final short[] d) { // PRIM_TYPE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (d.length &gt; isize) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                setAbs(getFirst1DIndex(), d);<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>         * Set values at given position. The dataset must be 1D<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         *<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @param d<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @param i<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public void setItem(final short[] d, final int i) { // PRIM_TYPE<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (d.length &gt; isize) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                setAbs(get1DIndex(i), d);<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>        /**<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * Set values at given position. The dataset must be 1D<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         *<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @param d<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param i<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @param j<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         */<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public void setItem(final short[] d, final int i, final int j) { // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                if (d.length &gt; isize) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                setAbs(get1DIndex(i, j), d);<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>         * Set values at given position<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         *<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param d<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param pos<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public void setItem(final short[] d, final int... pos) { // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                if (d.length &gt; isize) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                setAbs(get1DIndex(pos), d);<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>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                for (int i = 0; i &lt; isize; i++)<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        data[index + i] = (short) d[i]; // ADD_CAST<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>        @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public void resize(int... newShape) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                setDirty();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator iter = getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                short[] ndata; // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        ndata = createArray(nsize);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } catch (Throwable t) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new IllegalArgumentException(t);<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>                int i = 0;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                ndata[i++] = data[iter.index + j];<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><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                odata = data = ndata;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                size = nsize;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                shape = newShape;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                stride = null;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                offset = 0;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                base = null;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public CompoundShortDataset getSlice(final SliceIterator siter) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                CompoundShortDataset result = new CompoundShortDataset(isize, siter.getShape());<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                IndexIterator riter = result.getIterator();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                }<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return result;<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>        @Override<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public ShortDataset getElementsView(int element) { // CLASS_TYPE<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (element &lt; 0)<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        element += isize;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>                ShortDataset view = new ShortDataset(shape); // CLASS_TYPE<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>                copyToView(this, view, true, true);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                view.setData();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (view.stride == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        int[] offset = new int[1];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        view.stride = createStrides(this, offset);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset = offset[0] + element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        view.base = base == null ? this : base;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        view.offset += element;<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>                return view;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        public ShortDataset getElements(int element) { // CLASS_TYPE<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                final ShortDataset elements = new ShortDataset(shape); // CLASS_TYPE<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span><a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                copyElements(elements, element);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                return elements;<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>        @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        public void copyElements(Dataset destination, int element) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                if (element &lt; 0)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        element += isize;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                final short[] elements = ((ShortDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                destination.setDirty();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                int n = 0;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        elements[n] = data[it.index];<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        n++;<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><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        @Override<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        public void setElements(Dataset source, int element) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                setDirty();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (element &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        element += isize;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<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>                final IndexIterator it = getIterator(element);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                final short[] elements = ((ShortDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                int n = 0;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        data[it.index] = elements[n];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        n++;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        @Override<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                setDirty();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                IndexIterator riter = result.getIterator();<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                short[] rdata = ((CompoundShortDataset) result).data; // PRIM_TYPE<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                rdata[riter.index + i] = data[iter.index + i];<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>        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        @Override<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public CompoundShortDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                setDirty();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                if (o instanceof Dataset) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        Dataset ds = (Dataset) o;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        if (length != ds.getSize()) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                throw new IllegalArgumentException(<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        IndexIterator iter = ds.getIterator();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                data[biter.index + i] = (short) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        data[biter.index] = (short) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                data[biter.index + i] = 0;<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>                } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        try {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (biter.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                data[biter.index + i] = vr[i];<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>                        } catch (IllegalArgumentException e) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        @Override<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        public CompoundShortDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                setDirty();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                if (o instanceof Dataset) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        Dataset ds = (Dataset) o;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                throw new IllegalArgumentException(<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                data[iter.index + i] = (short) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                        }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        } else {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[iter.index + i] = 0;<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>                } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span><a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                while (iter.hasNext()) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        setAbs(iter.index, vr);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        } catch (IllegalArgumentException e) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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 CompoundShortDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                final int[] pos = iter.getPos();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span><a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                if (o instanceof Dataset) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        Dataset ds = (Dataset) o;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                throw new IllegalArgumentException(<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                "Number of items in selection does not match number of items in dataset");<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>                        IndexIterator oiter = ds.getIterator();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span><a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                double[] temp = new double[isize];<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        } else {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                        int n = get1DIndex(pos);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        data[n] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                data[n + i] = 0;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                } else {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        try {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                while (iter.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        } catch (IllegalArgumentException e) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>        CompoundShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                setDirty();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                final int is = view.getElementsPerItem();<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span><a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                if (is &gt; 1) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        final short bv = (short) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        data[it.aIndex] = bv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                data[it.aIndex + j] = bv;<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>                        } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                while (it.hasNext()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                                data[it.aIndex + j] = (short) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<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>
+<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>                                data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<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 this;<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>        @Override<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        public CompoundShortDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                setDirty();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                if (o instanceof IDataset) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        final IDataset ds = (IDataset) o;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        final int[] oshape = ds.getShape();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                throw new IllegalArgumentException(String.format(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                Arrays.toString(siter.getShape())));<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        }<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (ds instanceof Dataset) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                final Dataset ads = (Dataset) ds;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span><a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<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>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                        data[siter.index + i] = (short) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                }<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                } else {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                        data[siter.index + i] = 0;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                }<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>                        } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                final int[] pos = oiter.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        data[siter.index + i] = 0;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                }<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 (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final short[] val = DTypeUtils.toShortArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        data[siter.index + i] = val[i];<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>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } else {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        try {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                while (siter.hasNext()) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                data[siter.index + i] = vr[i];<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        } catch (IllegalArgumentException e) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        throw new IllegalArgumentException(String.format(<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        dest.getElementsPerItem(), isize));<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>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                dest.setDirty();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                ddata[diter.index + i] = data[siter.index + i];<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>        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span><a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        @Override<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                setDirty();<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span><a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span><a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                        throw new IllegalArgumentException("source array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                data[siter.index + j] = sdata[isize * i + j];<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>        }<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span><a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        @Override<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>        public boolean containsNans() {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                return false;<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        @Override<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        public boolean containsInfs() {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                return false;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        @Override<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        public boolean containsInvalidNumbers() {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                return false;<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>        @Override<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        public CompoundShortDataset iadd(final Object b) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                setDirty();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                int is = bds.getElementsPerItem();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                if (bds.getSize() == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        final IndexIterator it = getIterator();<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        if (is == 1) {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                if (useLong) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                        while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                        data[it.index + i] += lb;<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>                                } else {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        while (it.hasNext()) {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                                        data[it.index + i] += db;<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>                        } else if (is == isize) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                if (useLong) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        while (it.hasNext()) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<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>                                } else {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        while (it.hasNext()) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<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>                        } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                } else {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                        it.setOutputDouble(!useLong);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        if (is == 1) {<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>                                                final long lb = it.bLong;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                data[it.aIndex] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                        data[it.aIndex + i] += lb;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                }<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                } else {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        while (it.hasNext()) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                final double db = it.bDouble;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                data[it.aIndex] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        data[it.aIndex + i] += db;<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                }<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>                        } else if (is == isize) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                if (useLong) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                        while (it.hasNext()) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                data[it.aIndex] += it.bLong;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        while (it.hasNext()) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<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>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>        @Override<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>        public CompoundShortDataset isubtract(final Object b) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                setDirty();<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                int is = bds.getElementsPerItem();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                if (bds.getSize() == 1) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        final IndexIterator it = getIterator();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        if (is == 1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                if (useLong) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        while (it.hasNext()) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                        data[it.index + i] -= lb;<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                } else {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        while (it.hasNext()) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                        data[it.index + i] -= db;<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>                                }<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        } else if (is == isize) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                if (useLong) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        while (it.hasNext()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<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>                                } else {<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] -= bds.getElementDoubleAbs(i);<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>                                }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                        } else {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                } else {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        it.setOutputDouble(!useLong);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                        if (is == 1) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                if (useLong) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                        while (it.hasNext()) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                final long lb = it.bLong;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                data[it.aIndex] += lb;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                        }<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                } else {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                        while (it.hasNext()) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                final double db = it.bDouble;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                data[it.aIndex] += db;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        data[it.aIndex + i] -= db;<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 if (is == isize) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                if (useLong) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                        while (it.hasNext()) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                data[it.aIndex] += it.bLong;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<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>                                } else {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<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>                                }<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                        } else {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                return this;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>        }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span><a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        @Override<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>        public CompoundShortDataset imultiply(final Object b) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                setDirty();<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                int is = bds.getElementsPerItem();<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                if (bds.getSize() == 1) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final IndexIterator it = getIterator();<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(0);<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(0);<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>                        if (useLong) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                if (is == 1) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        if (lb == 0) { // INT_USE<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                fill(0); // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        } else { // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        while (it.hasNext()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                        data[it.index + i] /= lb;<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>                                        } // INT_USE<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                } else if (is == isize) {<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                        while (it.hasNext()) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                try {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                } catch (ArithmeticException e) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                        data[it.index + i] = 0;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                }<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>                                } else {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        if (db == 0) { // INT_USE<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                fill(0); // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        } else { // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        while (it.hasNext()) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                        data[it.index + i] /= db;<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>                                        } // INT_USE<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                } else if (is == isize) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                        while (it.hasNext()) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                try {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                } catch (ArithmeticException e) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        data[it.index + i] = 0;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                }<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>                                } else {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                } else {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        it.setOutputDouble(!useLong);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        if (useLong) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                if (is == 1) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                final long lb = it.bLong;<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                if (lb == 0) { // INT_USE<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                        }// INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                } else { // INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                } // INT_USE<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                        }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                } else if (is == isize) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        while (it.hasNext()) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                try {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                } catch (ArithmeticException e) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        data[it.aIndex + i] = 0;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                }<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>                                } else {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                        } else {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                if (is == 1) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                final double db = it.bDouble;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                if (db == 0) { // INT_USE<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                        }// INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                } else { // INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                        data[it.aIndex + i] /= db;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                } // INT_USE<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                } else if (is == isize) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                        while (it.hasNext()) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                try {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                } catch (ArithmeticException e) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                return this;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span><a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        @Override<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        public CompoundShortDataset ifloor() {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                return this;<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>        @Override<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        public CompoundShortDataset iremainder(final Object b) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                setDirty();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                int is = bds.getElementsPerItem();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (bds.getSize() == 1) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        final IndexIterator it = getIterator();<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        if (useLong) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                if (is == 1) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        final long lb = bds.getElementLongAbs(0);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                        if (lb == 0) { // INT_USE<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                fill(0); // INT_USE<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        } else { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                        while (it.hasNext()) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                        data[it.index + i] %= lb;<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>                                        } // INT_USE<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                } else if (is == isize) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        while (it.hasNext()) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                try {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                } catch (ArithmeticException e) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        data[it.index + i] = 0;<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>                                        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                } else {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                        } else {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                if (is == 1) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                        final double db = bds.getElementDoubleAbs(0);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        if (db == 0) { // INT_USE<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                fill(0); // INT_USE<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        } else { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                        while (it.hasNext()) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                        data[it.index + i] %= db;<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>                                        } // INT_USE<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                } else if (is == isize) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        while (it.hasNext()) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                try {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                } catch (ArithmeticException e) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        data[it.index + i] = 0;<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                }<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>                                } else {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                }<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        }<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                } else {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                        it.setOutputDouble(!useLong);<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        if (useLong) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                if (is == 1) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        while (it.hasNext()) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                final long lb = it.bLong;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                if (lb == 0) { // INT_USE<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                } else { // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                } // INT_USE<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                        }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                } else if (is == isize) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        while (it.hasNext()) {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                try {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                } catch (ArithmeticException e) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        data[it.aIndex + i] = 0;<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                } else {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                                if (is == 1) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                final double db = it.bDouble;<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                if (db == 0) { // INT_USE<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                } else { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                        data[it.aIndex + i] %= db;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                } // INT_USE<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else if (is == isize) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                try {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                } catch (ArithmeticException e) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                        data[it.aIndex + i] = 0;<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>                                        }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                } else {<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<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>                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                return this;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>        }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        @Override<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        public CompoundShortDataset ipower(final Object b) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                setDirty();<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                final int is = bds.getElementsPerItem();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                if (bds.getSize() == 1) {<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(0);<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(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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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] = (short) (long) 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>                                        double err = diff * diff - comp;<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        double temp = sum + err;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        comp = (temp - sum) - err;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        sum = temp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                err = diff * diff - comp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                temp = sum + err;<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                comp = (temp - sum) - err;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                sum = temp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                        }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                }<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        } else {<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                IndexIterator itw = w.getIterator();<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        final double db = it.bDouble;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        double diff = it.aDouble - db;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        double err = diff * diff * dw - comp;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double temp = sum + err;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        comp = (temp - sum) - err;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        sum = temp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                                err = diff * diff * dw - comp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                                temp = sum + err;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                comp = (temp - sum) - err;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                sum = temp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                        }<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>                } else {<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                        if (w == null) {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                while (it.hasNext()) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                        double err = diff * diff - comp;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                        double temp = sum + err;<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        comp = (temp - sum) - err;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        sum = temp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                err = diff * diff - comp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                temp = sum + err;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                comp = (temp - sum) - err;<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                sum = temp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        }<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                        } else {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                IndexIterator itw = w.getIterator();<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                        double err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double 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>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                                err = diff * diff * dw - comp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                temp = sum + err;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                comp = (temp - sum) - err;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                sum = temp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        }<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                }<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                        }<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..1761099
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..976e12b
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.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> *******************************************************************************<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>                        index = imax;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        return false;<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>                index += istep;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                return index &lt; imax;<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 position indices (nb not a copy)<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 int[] getPos() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                return pos;<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 reset() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                if (shape.length &gt; 0) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        Arrays.fill(pos, 0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        pos[endrank] = -1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                index = -istep;<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 int[] getShape() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return shape;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..c002a7c
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..31731ea
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..ca28c25
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,1236 @@
+<!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>         * @param comp<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @return true if supported<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         */<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public static boolean isClassSupportedAsElement(Class&lt;? extends Object&gt; comp) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return comp.isPrimitive() || Number.class.isAssignableFrom(comp) || comp.equals(Boolean.class)<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                || comp.equals(Complex.class) || comp.equals(String.class) || comp.equals(Date.class);<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>        /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * @param dtype<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @return number of elements per item<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         */<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public static int getElementsPerItem(final int dtype) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                switch (dtype) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                case Dataset.ARRAYINT8:<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                case Dataset.ARRAYINT16:<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                case Dataset.ARRAYINT32:<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                case Dataset.ARRAYINT64:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                case Dataset.ARRAYFLOAT32:<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                case Dataset.ARRAYFLOAT64:<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        throw new UnsupportedOperationException("Multi-element type unsupported");<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                case Dataset.COMPLEX64:<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                case Dataset.COMPLEX128:<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return 2;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                case Dataset.RGB:<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        return 3;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return 1;<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>         * @param dtype<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @return length of single item in bytes<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public static int getItemBytes(final int dtype) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return getItemBytes(dtype, getElementsPerItem(dtype));<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>         * @param dtype<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @param isize<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         *            number of elements in an item<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * @return length of single item in bytes<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public static int getItemBytes(final int dtype, final int isize) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                int size;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        <a name="line.451"></a>
+<span class="sourceLineNo">452</span>                switch (dtype) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                case Dataset.BOOL:<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        size = 1; // How is this defined?<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        break;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                case Dataset.INT8:<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                case Dataset.ARRAYINT8:<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        size = Byte.SIZE / 8;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        break;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                case Dataset.INT16:<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                case Dataset.ARRAYINT16:<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                case Dataset.RGB:<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        size = Short.SIZE / 8;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        break;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                case Dataset.INT32:<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                case Dataset.ARRAYINT32:<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        size = Integer.SIZE / 8;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        break;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                case Dataset.INT64:<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                case Dataset.ARRAYINT64:<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        size = Long.SIZE / 8;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        break;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                case Dataset.FLOAT32:<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                case Dataset.ARRAYFLOAT32:<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                case Dataset.COMPLEX64:<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        size = Float.SIZE / 8;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        break;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                case Dataset.FLOAT64:<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                case Dataset.ARRAYFLOAT64:<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                case Dataset.COMPLEX128:<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        size = Double.SIZE / 8;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        break;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                default:<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        size = 0;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        break;<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>                return size * isize;<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>        public static boolean toBoolean(final Object b) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                if (b instanceof Number) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        return ((Number) b).longValue() != 0;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                } else if (b instanceof Boolean) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        return ((Boolean) b).booleanValue();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                } else if (b instanceof Complex) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        return ((Complex) b).getReal() != 0;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                } else if (b instanceof Dataset) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        Dataset db = (Dataset) b;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        if (db.getSize() != 1) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                logger.error("Given dataset must have only one item");<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        return toBoolean(db.getObjectAbs(0));<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                } else if (b instanceof IDataset) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        IDataset db = (IDataset) b;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        if (db.getSize() != 1) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                logger.error("Given dataset must have only one item");<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return toBoolean(db.getObject(new int[db.getRank()]));<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                } else {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        logger.error("Argument is of unsupported class");<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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><a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public static long toLong(final Object b) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                if (b instanceof Number) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        return ((Number) b).longValue();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                } else if (b instanceof Boolean) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                } else if (b instanceof Complex) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        return (long) ((Complex) b).getReal();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                } else if (b instanceof Dataset) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        Dataset db = (Dataset) b;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        if (db.getSize() != 1) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                logger.error("Given dataset must have only one item");<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        return toLong(db.getObjectAbs(0));<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                } else if (b instanceof IDataset) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        IDataset db = (IDataset) b;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        if (db.getSize() != 1) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                logger.error("Given dataset must have only one item");<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        return toLong(db.getObject(new int[db.getRank()]));<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                } else {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        logger.error("Argument is of unsupported class");<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        public static double toReal(final Object b) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                if (b instanceof Number) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        return ((Number) b).doubleValue();<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                } else if (b instanceof Boolean) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                } else if (b instanceof Complex) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        return ((Complex) b).getReal();<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                } else if (b.getClass().isArray()) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        if (Array.getLength(b) == 0)<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                return 0;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return toReal(Array.get(b, 0));<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                } else if (b instanceof Dataset) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        Dataset db = (Dataset) 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 toReal(db.getObjectAbs(0));<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                } else if (b instanceof IDataset) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        IDataset db = (Dataset) b;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        if (db.getSize() != 1) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                logger.error("Given dataset must have only one item");<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        return toReal(db.getObject(new int[db.getRank()]));<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                } else {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        logger.error("Argument is of unsupported class");<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<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>        public static double toImag(final Object b) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                if (b instanceof Number) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        return 0;<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                } else if (b instanceof Boolean) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                        return 0;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                } else if (b instanceof Complex) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        return ((Complex) b).getImaginary();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                } else if (b.getClass().isArray()) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        if (Array.getLength(b) &lt; 2)<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                return 0;<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        return toReal(Array.get(b, 1));<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                } else if (b instanceof Dataset) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        Dataset 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 toImag(db.getObjectAbs(0));<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                } else if (b instanceof IDataset) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        IDataset db = (Dataset) b;<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        if (db.getSize() != 1) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                logger.error("Given dataset must have only one item");<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        return toImag(db.getObject(new int[db.getRank()]));<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                } else {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        logger.error("Argument is of unsupported class");<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                }<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>        public static double[] toDoubleArray(final Object b, final int itemSize) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                double[] result = null;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        <a name="line.609"></a>
+<span class="sourceLineNo">610</span>                // ensure array is of given length<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                if (b instanceof Number) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        result = new double[itemSize];<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        double val = ((Number) b).doubleValue();<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                result[i] = val;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                } else if (b instanceof double[]) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result = (double[]) b;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        if (result.length &lt; itemSize) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                result = new double[itemSize];<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                int ilen = result.length;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                for (int i = 0; i &lt; ilen; i++)<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                        result[i] = ((double[]) b)[i];<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        result = new double[itemSize];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        int ilen = jl.size();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        ilen = Math.min(itemSize, ilen);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                result[i] = toReal(jl.get(i));<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                } else if (b.getClass().isArray()) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result = new double[itemSize];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        int ilen = Array.getLength(b);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ilen = Math.min(itemSize, ilen);<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        for (int i = 0; i &lt; ilen; i++)<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                result[i] = ((Number) Array.get(b, i)).doubleValue();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                } else if (b instanceof Complex) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        if (itemSize &gt; 2) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        Complex cb = (Complex) b;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        switch (itemSize) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        default:<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        case 0:<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                break;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        case 1:<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                result = new double[] {cb.getReal()};<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                break;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        case 2:<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                result = new double[] {cb.getReal(), cb.getImaginary()};<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                break;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                } else if (b instanceof Dataset) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        Dataset db = (Dataset) b;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        if (db.getSize() != 1) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                logger.error("Given dataset must have only one item");<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        return toDoubleArray(db.getObjectAbs(0), itemSize);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                } else if (b instanceof IDataset) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        IDataset db = (Dataset) b;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        if (db.getSize() != 1) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                logger.error("Given dataset must have only one item");<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        return toDoubleArray(db.getObject(new int[db.getRank()]), itemSize);<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 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>        public static float[] toFloatArray(final Object b, final int itemSize) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                float[] result = null;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        <a name="line.684"></a>
+<span class="sourceLineNo">685</span>                if (b instanceof Number) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        result = new float[itemSize];<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        float val = ((Number) b).floatValue();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                result[i] = val;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                } else if (b instanceof float[]) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        result = (float[]) b;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        if (result.length &lt; itemSize) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                result = new float[itemSize];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                int ilen = result.length;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                for (int i = 0; i &lt; ilen; i++)<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                        result[i] = ((float[]) b)[i];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        result = new float[itemSize];<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        int ilen = jl.size();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        }<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        ilen = Math.min(itemSize, ilen);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                result[i] = (float) toReal(jl.get(i));<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                } else if (b.getClass().isArray()) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        result = new float[itemSize];<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        int ilen = Array.getLength(b);<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        }<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        ilen = Math.min(itemSize, ilen);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        for (int i = 0; i &lt; ilen; i++)<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                result[i] = ((Number) Array.get(b, i)).floatValue();<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                } else if (b instanceof Complex) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        if (itemSize &gt; 2) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        Complex cb = (Complex) b;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        switch (itemSize) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        default:<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        case 0:<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                break;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        case 1:<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                result = new float[] {(float) cb.getReal()};<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                break;<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        case 2:<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                result = new float[] {(float) cb.getReal(), (float) cb.getImaginary()};<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                break;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                } else if (b instanceof Dataset) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        Dataset db = (Dataset) b;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        if (db.getSize() != 1) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                logger.error("Given dataset must have only one item");<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        return toFloatArray(db.getObjectAbs(0), itemSize);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                } else if (b instanceof IDataset) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        IDataset db = (Dataset) b;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        if (db.getSize() != 1) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                logger.error("Given dataset must have only one item");<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        return toFloatArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<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>        public static long[] toLongArray(final Object b, final int itemSize) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                long[] result = null;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>        <a name="line.758"></a>
+<span class="sourceLineNo">759</span>                if (b instanceof Number) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        result = new long[itemSize];<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        long val = ((Number) b).longValue();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                result[i] = val;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                } else if (b instanceof long[]) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        result = (long[]) b;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        if (result.length &lt; itemSize) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                result = new long[itemSize];<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                int ilen = result.length;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                for (int i = 0; i &lt; ilen; i++)<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                        result[i] = ((long[]) b)[i];<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        result = new long[itemSize];<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        int ilen = jl.size();<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        }<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        ilen = Math.min(itemSize, ilen);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                result[i] = toLong(jl.get(i));<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        }<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                } else if (b.getClass().isArray()) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        result = new long[itemSize];<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        int ilen = Array.getLength(b);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        ilen = Math.min(itemSize, ilen);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        for (int i = 0; i &lt; ilen; i++)<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                result[i] = ((Number) Array.get(b, i)).longValue();<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                } else if (b instanceof Complex) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        if (itemSize &gt; 2) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        Complex cb = (Complex) b;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        switch (itemSize) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        default:<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        case 0:<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                break;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        case 1:<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                result = new long[] {(long) cb.getReal()};<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                break;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        case 2:<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                result = new long[] {(long) cb.getReal(), (long) cb.getImaginary()};<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                break;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                } else if (b instanceof Dataset) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        Dataset db = (Dataset) b;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (db.getSize() != 1) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                logger.error("Given dataset must have only one item");<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        }<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        return toLongArray(db.getObjectAbs(0), itemSize);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                } else if (b instanceof IDataset) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        IDataset db = (Dataset) b;<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        if (db.getSize() != 1) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                logger.error("Given dataset must have only one item");<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        return toLongArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<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>        public static int[] toIntegerArray(final Object b, final int itemSize) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                int[] result = null;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        <a name="line.832"></a>
+<span class="sourceLineNo">833</span>                if (b instanceof Number) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                        result = new int[itemSize];<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        int val = ((Number) b).intValue();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                result[i] = val;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                } else if (b instanceof int[]) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        result = (int[]) b;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        if (result.length &lt; itemSize) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                result = new int[itemSize];<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                int ilen = result.length;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                for (int i = 0; i &lt; ilen; i++)<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        result[i] = ((int[]) b)[i];<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                        result = new int[itemSize];<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        int ilen = jl.size();<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        ilen = Math.min(itemSize, ilen);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                result[i] = (int) toLong(jl.get(i));<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                } else if (b.getClass().isArray()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        result = new int[itemSize];<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                        int ilen = Array.getLength(b);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        ilen = Math.min(itemSize, ilen);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        for (int i = 0; i &lt; ilen; i++)<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                result[i] = (int) ((Number) Array.get(b, i)).longValue();<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                } else if (b instanceof Complex) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        if (itemSize &gt; 2) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                        Complex cb = (Complex) b;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        switch (itemSize) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                        default:<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        case 0:<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                break;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                        case 1:<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                result = new int[] {(int) cb.getReal()};<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                break;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        case 2:<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                result = new int[] {(int) cb.getReal(), (int) cb.getImaginary()};<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                break;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                } else if (b instanceof Dataset) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        Dataset db = (Dataset) b;<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        if (db.getSize() != 1) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                logger.error("Given dataset must have only one item");<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        return toIntegerArray(db.getObjectAbs(0), itemSize);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                } else if (b instanceof IDataset) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        IDataset db = (Dataset) b;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        if (db.getSize() != 1) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                logger.error("Given dataset must have only one item");<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        return toIntegerArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<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>        public static short[] toShortArray(final Object b, final int itemSize) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                short[] result = null;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        <a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (b instanceof Number) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        result = new short[itemSize];<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        short val = ((Number) b).shortValue();<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                result[i] = val;<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                } else if (b instanceof short[]) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        result = (short[]) b;<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        if (result.length &lt; itemSize) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                result = new short[itemSize];<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                int ilen = result.length;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                for (int i = 0; i &lt; ilen; i++)<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                        result[i] = ((short[]) b)[i];<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        result = new short[itemSize];<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        int ilen = jl.size();<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        ilen = Math.min(itemSize, ilen);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                result[i] = (short) toLong(jl.get(i));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                } else if (b.getClass().isArray()) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        result = new short[itemSize];<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        int ilen = Array.getLength(b);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        ilen = Math.min(itemSize, ilen);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        for (int i = 0; i &lt; ilen; i++)<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                result[i] = (short) ((Number) Array.get(b, i)).longValue();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                } else if (b instanceof Complex) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        if (itemSize &gt; 2) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        Complex cb = (Complex) b;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        switch (itemSize) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        default:<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        case 0:<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                break;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                        case 1:<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                result = new short[] {(short) cb.getReal()};<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                break;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        case 2:<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                result = new short[] {(short) cb.getReal(), (short) cb.getImaginary()};<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                break;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        }<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                } else if (b instanceof Dataset) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        Dataset db = (Dataset) b;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                        if (db.getSize() != 1) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                logger.error("Given dataset must have only one item");<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        return toShortArray(db.getObjectAbs(0), itemSize);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                } else if (b instanceof IDataset) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        IDataset db = (Dataset) b;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        if (db.getSize() != 1) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                logger.error("Given dataset must have only one item");<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        return toShortArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        <a name="line.974"></a>
+<span class="sourceLineNo">975</span>                return result;<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>        public static byte[] toByteArray(final Object b, final int itemSize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                byte[] result = null;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        <a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (b instanceof Number) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        result = new byte[itemSize];<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        final byte val = ((Number) b).byteValue();<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                result[i] = val;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                } else if (b instanceof byte[]) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        result = (byte[]) b;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        if (result.length &lt; itemSize) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                result = new byte[itemSize];<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                int ilen = result.length;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                        result[i] = ((byte[]) b)[i];<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>                } else if (b instanceof List&lt;?&gt;) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        result = new byte[itemSize];<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        int ilen = jl.size();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                result[i] = (byte) toLong(jl.get(i));<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                } else if (b.getClass().isArray()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        result = new byte[itemSize];<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        int ilen = Array.getLength(b);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                result[i] = (byte) ((Number) Array.get(b, i)).longValue();<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                } else if (b instanceof Complex) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        if (itemSize &gt; 2) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        Complex cb = (Complex) b;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        switch (itemSize) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        default:<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        case 0:<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                break;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        case 1:<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                result = new byte[] {(byte) cb.getReal()};<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                break;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        case 2:<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                result = new byte[] {(byte) cb.getReal(), (byte) cb.getImaginary()};<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                break;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                } else if (b instanceof Dataset) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        Dataset db = (Dataset) b;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        if (db.getSize() != 1) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                logger.error("Given dataset must have only one item");<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        return toByteArray(db.getObjectAbs(0), itemSize);<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                } else if (b instanceof IDataset) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        IDataset db = (Dataset) b;<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        if (db.getSize() != 1) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                logger.error("Given dataset must have only one item");<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        return toByteArray(db.getObject(new int[db.getRank()]), itemSize);<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>                return result;<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        public static Object fromDoublesToBiggestPrimitives(double[] x, int dtype) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                switch (dtype) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                case Dataset.BOOL:<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.INT8:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                case Dataset.INT16:<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                case Dataset.INT32:<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        int[] i32 = new int[x.length];<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                i32[i] = (int) (long) x[i];<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        return i32;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                case Dataset.INT64:<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        long[] i64 = new long[x.length];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                i64[i] = (long) x[i];<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        return i64;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                case Dataset.FLOAT32:<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        float[] f32 = new float[x.length];<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                f32[i] = (float) x[i];<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        return f32;<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                case Dataset.FLOAT64:<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        return x;<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                }<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                return null;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>        }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        /**<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         * @param x<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>         * @param dtype<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>         * @return biggest native primitive if integer (should test for 64bit?)<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>         */<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        public static Number fromDoubleToBiggestNumber(double x, int dtype) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                switch (dtype) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                case Dataset.BOOL:<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                case Dataset.INT8:<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                case Dataset.INT16:<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                case Dataset.INT32:<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                        return Integer.valueOf((int) (long) x);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                case Dataset.INT64:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        return Long.valueOf((long) x);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                case Dataset.FLOAT32:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        return Float.valueOf((float) x);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                case Dataset.FLOAT64:<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        return Double.valueOf(x);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                return null;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>        }<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>         * @param b<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * @return length of object<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         */<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        public static final int getLength(final Object b) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                if (b instanceof Number) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        return 1;<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                } else if (b instanceof Complex) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        return 1;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        return jl.size();<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                } else if (b.getClass().isArray()) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        return Array.getLength(b);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                } else if (b instanceof IDataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        IDataset db = (Dataset) b;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        return db.getSize();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        <a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                throw new IllegalArgumentException("Cannot find length as object not supported");<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>         * @param dtype<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @return (boxed) class of constituent element<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public static Class&lt;?&gt; getElementClass(final int dtype) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                switch (dtype) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                case Dataset.BOOL:<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        return Boolean.class;<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                case Dataset.INT8:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                case Dataset.ARRAYINT8:<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        return Byte.class;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                case Dataset.INT16:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                case Dataset.ARRAYINT16:<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                case Dataset.RGB:<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        return Short.class;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                case Dataset.INT32:<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                case Dataset.ARRAYINT32:<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        return Integer.class;<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                case Dataset.INT64:<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.ARRAYINT64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        return Long.class;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                case Dataset.FLOAT32:<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                case Dataset.ARRAYFLOAT32:<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        return Float.class;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                case Dataset.FLOAT64:<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                case Dataset.ARRAYFLOAT64:<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        return Double.class;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                case Dataset.COMPLEX64:<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        return Float.class;<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                case Dataset.COMPLEX128:<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        return Double.class;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                case Dataset.STRING:<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        return String.class;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                case Dataset.DATE:<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        return Date.class;<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                return Object.class;<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>}<a name="line.1164"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..b9f3443
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..d14dd77
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Dataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..8726c9d
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,1390 @@
+<!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 stored 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>         * Get a slice iterator that is defined by a starting position and a set of axes to include<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * <a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @param pos<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * @param axes<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         *            to include<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * @return slice iterator<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         */<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public SliceIterator getSliceIteratorFromAxes(int[] pos, boolean[] axes);<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>         * Copy content from axes in given position to array<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         * <a name="line.461"></a>
+<span class="sourceLineNo">462</span>         * @param pos<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         *            - null means position at origin<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * @param axes<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *            - true means copy<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * @param dest<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         */<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public void copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest);<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>         * Set content on axes in given position to values in array<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * <a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param pos<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @param axes<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         *            - true means copy<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * @param src<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        public void setItemsOnAxes(int[] pos, boolean[] axes, Object src);<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>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * choice dataset is true<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * <a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * @param choice<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         */<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public BooleanIterator getBooleanIterator(Dataset choice);<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>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * choice dataset is given by value<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * <a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @param choice<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         * @param value<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         */<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public BooleanIterator getBooleanIterator(Dataset choice, boolean value);<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>         * This is modelled after the NumPy get item with a condition specified by a boolean dataset<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param selection<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @return The new selected dataset<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         */<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public Dataset getByBoolean(Dataset selection);<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>         * This is modelled after the NumPy set item with a condition specified by a boolean dataset<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         *<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * @param obj<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         *            specifies the object used to set the selected items<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @param selection<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         * <a name="line.515"></a>
+<span class="sourceLineNo">516</span>         * @return The dataset with modified content<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         */<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Dataset setByBoolean(Object obj, Dataset selection);<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>         * This is modelled after the NumPy get item with an index dataset<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         *<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * @param index<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         *            an integer dataset<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @return The new selected dataset by indices<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         */<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public Dataset getBy1DIndex(IntegerDataset index);<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>         * This is modelled after the NumPy get item with an array of indexing objects<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         *<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         * @param indexes<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         *            full slices)<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * @return The new selected dataset by index<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         */<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public Dataset getByIndexes(Object... indexes);<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>         * This is modelled after the NumPy set item with an index dataset<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         *<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @param obj<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         *            specifies the object used to set the selected items<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @param index<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         *            an integer dataset<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         * <a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @return The dataset with modified content<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        public Dataset setBy1DIndex(Object obj, Dataset index);<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>         * This is modelled after the NumPy set item with an array of indexing objects<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         *<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param obj<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         *            specifies the object used to set the selected items<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @param indexes<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         *            full slices)<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * <a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @return The dataset with modified content<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public Dataset setByIndexes(Object obj, Object... indexes);<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>         * Fill dataset with given object<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         * <a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param obj<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @return filled dataset with each item being equal to the given object<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public Dataset fill(Object obj);<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>         * Get an element from given absolute index as a boolean. See warning in interface doc<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * <a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @param index<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * @return element as boolean<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         */<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        public boolean getElementBooleanAbs(int index);<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>         * Get an element from given absolute index as a double. See warning in interface doc<a name="line.581"></a>
+<span class="sourceLineNo">582</span>         * <a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * @param index<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * @return element as double<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         */<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        public double getElementDoubleAbs(int index);<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>         * Get an element from given absolute index as a long. See warning in interface doc<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * <a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param index<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         * @return element as long<a name="line.592"></a>
+<span class="sourceLineNo">593</span>         */<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        public long getElementLongAbs(int index);<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>         * Get an item from given absolute index as an object. See warning in interface doc<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * <a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param index<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @return item<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         */<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        public Object getObjectAbs(int index);<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>         * Get an item from given absolute index as a string. See warning in interface doc<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * <a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param index<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         * @return item<a name="line.608"></a>
+<span class="sourceLineNo">609</span>         */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        public String getStringAbs(int index);<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>         * Set an item at absolute index from an object. See warning in interface doc<a name="line.613"></a>
+<span class="sourceLineNo">614</span>         * <a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * @param index<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param obj<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         */<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void setObjectAbs(int index, Object obj);<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>         * Get first item as an object. The dataset must not be null<a name="line.621"></a>
+<span class="sourceLineNo">622</span>         * @return item<a name="line.622"></a>
+<span class="sourceLineNo">623</span>         * @since 2.0<a name="line.623"></a>
+<span class="sourceLineNo">624</span>         */<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        public Object getObject();<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 an item from given position as an object. The dataset must be 1D<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @param i<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @return item<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public Object getObject(final int i);<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 2D<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * @param i<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * @param j<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         * @return item<a name="line.638"></a>
+<span class="sourceLineNo">639</span>         */<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        public Object getObject(final int i, final int 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>         * Get first item as a string. The dataset must not be null<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         * @return item<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @since 2.0<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public String getString();<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 an item from given position as a string. The dataset must be 1D<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         * @param i<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * @return item<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         */<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        public String getString(final int i);<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 2D<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @param i<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @param j<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         * @return item<a name="line.660"></a>
+<span class="sourceLineNo">661</span>         */<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        public String getString(final int i, final int j);<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>         * Get first item as a double. The dataset must not be null<a name="line.665"></a>
+<span class="sourceLineNo">666</span>         * @return item<a name="line.666"></a>
+<span class="sourceLineNo">667</span>         * @since 2.0<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         */<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        public double getDouble();<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 an item from given position as a double. The dataset must be 1D<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         * @param i<a name="line.673"></a>
+<span class="sourceLineNo">674</span>         * @return item<a name="line.674"></a>
+<span class="sourceLineNo">675</span>         */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        public double getDouble(final int i);<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 2D<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param i<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @param j<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         * @return item<a name="line.682"></a>
+<span class="sourceLineNo">683</span>         */<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        public double getDouble(final int i, final int j);<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>         * Get first item as a float. The dataset must not be null<a name="line.687"></a>
+<span class="sourceLineNo">688</span>         * @return item<a name="line.688"></a>
+<span class="sourceLineNo">689</span>         * @since 2.0<a name="line.689"></a>
+<span class="sourceLineNo">690</span>         */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        public float getFloat();<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 an item from given position as a float. The dataset must be 1D<a name="line.694"></a>
+<span class="sourceLineNo">695</span>         * @param i<a name="line.695"></a>
+<span class="sourceLineNo">696</span>         * @return item<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         */<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public float getFloat(final int i);<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 2D<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         * @param i<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @param j<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         * @return item<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         */<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public float getFloat(final int i, final int j);<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>        /**<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         * Get first item as a long. The dataset must not be null<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * @return item<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         * @since 2.0<a name="line.711"></a>
+<span class="sourceLineNo">712</span>         */<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public long getLong();<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 an item from given position as a long. The dataset must be 1D<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @param i<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @return item<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         */<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        public long getLong(final int i);<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 2D<a name="line.723"></a>
+<span class="sourceLineNo">724</span>         * @param i<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * @param j<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         * @return item<a name="line.726"></a>
+<span class="sourceLineNo">727</span>         */<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        public long getLong(final int i, final int j);<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>         * Get first item as an int. The dataset must not be null<a name="line.731"></a>
+<span class="sourceLineNo">732</span>         * @return item<a name="line.732"></a>
+<span class="sourceLineNo">733</span>         * @since 2.0<a name="line.733"></a>
+<span class="sourceLineNo">734</span>         */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>        public int getInt();<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 an item from given position as an int. The dataset must be 1D<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * @param i<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @return item<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         */<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        public int getInt(final int i);<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 2D<a name="line.745"></a>
+<span class="sourceLineNo">746</span>         * @param i<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         * @param j<a name="line.747"></a>
+<span class="sourceLineNo">748</span>         * @return item<a name="line.748"></a>
+<span class="sourceLineNo">749</span>         */<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        public int getInt(final int i, final int j);<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>         * Get first item as a short. The dataset must not be null<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         * @return item<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * @since 2.0<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         */<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public short getShort();<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 an item from given position as a short. The dataset must be 1D<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @param i<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @return item<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         */<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        public short getShort(final int i);<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 2D<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         * @param i<a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * @param j<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         * @return item<a name="line.770"></a>
+<span class="sourceLineNo">771</span>         */<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        public short getShort(final int i, final int j);<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>         * Get first item as a byte. The dataset must not be null<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @return item<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 byte getByte();<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 an item from given position as a byte. The dataset must be 1D<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @param i<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @return item<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public byte getByte(final int 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>         * Get an item from given positionj as a byte. The dataset must be 2D<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param i<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * @param j<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         * @return item<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         */<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        public byte getByte(final int i, final int j);<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>         * Get first item as a boolean. The dataset must not be null<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * @return item<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 boolean getBoolean();<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 an item from given position as a boolean. The dataset must be 1D<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param i<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @return item<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public boolean getBoolean(final int i);<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 2D<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param i<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param j<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @return item<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         */<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        public boolean getBoolean(final int i, final int j);<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>         * Get the error for the first item. The dataset must not be null<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         * @return item<a name="line.820"></a>
+<span class="sourceLineNo">821</span>         * @since 2.0<a name="line.821"></a>
+<span class="sourceLineNo">822</span>         */<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public double getError();<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 given position. The dataset must be 1D<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @param i<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         * @return error value (symmetric)<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         */<a name="line.829"></a>
+<span class="sourceLineNo">830</span>        public double getError(final int i);<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 2D<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         * @param i<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @param j<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @return error value (symmetric)<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         */<a name="line.837"></a>
+<span class="sourceLineNo">838</span>        public double getError(final int i, final int j);<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>         * Get the error values for given position<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @param i<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         */<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        public double[] getErrorArray(final int i);<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>         * @param j<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         */<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        public double[] getErrorArray(final int i, final int j);<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>         * Set the value given by object at the first position. The dataset must not be null<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         * @param obj<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         * @since 2.0<a name="line.858"></a>
+<span class="sourceLineNo">859</span>         */<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj);<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 given position. The dataset must be 1D<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param obj<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @param i<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, final int i);<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 2D<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>         * @param j<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         */<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        public void set(final Object obj, final int i, final int j);<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>         * In-place sort of dataset<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * <a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @param axis<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         *            to sort along. If null, then the flattened view is sorted<a name="line.881"></a>
+<span class="sourceLineNo">882</span>         * @return sorted dataset<a name="line.882"></a>
+<span class="sourceLineNo">883</span>         */<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        public Dataset sort(Integer axis);<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        @Override<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        public Dataset getSlice(int[] start, int[] stop, int[] step);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>        @Override<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        public Dataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step);<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        @Override<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        public Dataset getSlice(Slice... slice);<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>        @Override<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        public Dataset getSlice(IMonitor mon, Slice... slice);<a name="line.896"></a>
+<span class="sourceLineNo">897</span><a name="line.897"></a>
+<span class="sourceLineNo">898</span>        @Override<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        public Dataset getSlice(SliceND slice);<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 Dataset getSlice(IMonitor mon, SliceND slice);<a name="line.902"></a>
+<span class="sourceLineNo">903</span><a name="line.903"></a>
+<span class="sourceLineNo">904</span>        @Override<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        public Dataset getSliceView(int[] start, int[] stop, int[] step);<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 Dataset getSliceView(Slice... slice);<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>        @Override<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        public Dataset getSliceView(SliceND slice);<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>         * This is modelled after the NumPy array slice<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param obj<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         *            specifies the object used to set the specified slice<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         * @param start<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         *            specifies the starting indexes<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param stop<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         *            specifies the stopping indexes (nb, these are &lt;b&gt;not&lt;/b&gt; included in the slice)<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         * @param step<a name="line.922"></a>
+<span class="sourceLineNo">923</span>         *            specifies the steps in the slice<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         * <a name="line.924"></a>
+<span class="sourceLineNo">925</span>         * @return The dataset with the sliced set to object<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         */<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        public Dataset setSlice(Object obj, int[] start, int[] stop, int[] step);<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>         * This is modelled after the NumPy array slice<a name="line.930"></a>
+<span class="sourceLineNo">931</span>         * <a name="line.931"></a>
+<span class="sourceLineNo">932</span>         * @param obj<a name="line.932"></a>
+<span class="sourceLineNo">933</span>         * @param slice<a name="line.933"></a>
+<span class="sourceLineNo">934</span>         */<a name="line.934"></a>
+<span class="sourceLineNo">935</span>        public Dataset setSlice(Object obj, Slice... slice);<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>         * This is modelled after the NumPy array slice<a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * <a name="line.939"></a>
+<span class="sourceLineNo">940</span>         * @param obj<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * @param slice<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         */<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public Dataset setSlice(Object obj, SliceND slice);<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>         * @param obj<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         *            specifies the object used to set the specified slice<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         * @param iterator<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         *            specifies the slice iterator<a name="line.949"></a>
+<span class="sourceLineNo">950</span>         * <a name="line.950"></a>
+<span class="sourceLineNo">951</span>         * @return The dataset with the sliced set to object<a name="line.951"></a>
+<span class="sourceLineNo">952</span>         */<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public Dataset setSlice(Object obj, IndexIterator iterator);<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>         * Populate another dataset with part of current dataset<a name="line.956"></a>
+<span class="sourceLineNo">957</span>         * <a name="line.957"></a>
+<span class="sourceLineNo">958</span>         * @param other<a name="line.958"></a>
+<span class="sourceLineNo">959</span>         * @param iter<a name="line.959"></a>
+<span class="sourceLineNo">960</span>         *            over current dataset<a name="line.960"></a>
+<span class="sourceLineNo">961</span>         */<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        public void fillDataset(Dataset other, IndexIterator iter);<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>         * Test if all items are true<a name="line.965"></a>
+<span class="sourceLineNo">966</span>         */<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        public boolean all();<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>         * @param axis<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         * @return dataset where items are true if all items along axis are true<a name="line.971"></a>
+<span class="sourceLineNo">972</span>         */<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        public Dataset all(int axis);<a name="line.973"></a>
+<span class="sourceLineNo">974</span><a name="line.974"></a>
+<span class="sourceLineNo">975</span>        /**<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         * Test if any items are true<a name="line.976"></a>
+<span class="sourceLineNo">977</span>         */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        public boolean any();<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>         * @param axis<a name="line.981"></a>
+<span class="sourceLineNo">982</span>         * @return dataset where items are true if any items along axis are true<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         */<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        public Dataset any(int axis);<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>        /**<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * In-place addition with object o<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * <a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * @param o<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         * @return sum dataset<a name="line.990"></a>
+<span class="sourceLineNo">991</span>         */<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public Dataset iadd(Object o);<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>         * In-place subtraction with object o<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * <a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @param o<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * @return difference dataset<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         */<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>        public Dataset isubtract(Object o);<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>         * In-place multiplication with object o<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>         * <a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * @param o<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @return product dataset<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         */<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>        public Dataset imultiply(Object o);<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>         * In-place division with object o<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         * <a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>         * @param o<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>         * @return dividend dataset<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         */<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>        public Dataset idivide(Object o);<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>         * In-place floor division with object o<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>         * <a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>         * @param o<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>         * @return dividend dataset<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>         */<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        public Dataset ifloorDivide(Object o);<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>         * In-place remainder<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         * <a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * @return remaindered dataset<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        public Dataset iremainder(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 floor<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * <a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @return floored dataset<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        public Dataset ifloor();<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 raise to power of object o<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * <a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * @param o<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * @return raised dataset<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         */<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        public Dataset ipower(Object o);<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>         * Calculate residual of dataset with object o<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * See {@link #residual(Object o, boolean ignoreNaNs)} with ignoreNaNs = false<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * <a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * @param o<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         * @return sum of the squares of the differences<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>         */<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        public double residual(Object o);<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>         * Calculate residual of dataset with object o<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * <a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param o<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         * @return sum of the squares of the differences<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         */<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        public double residual(Object o, boolean ignoreNaNs);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span><a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>        /**<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>         * Calculate residual of dataset with object o and weight. The weight is used to multiply<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>         * the squared differences<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>         * <a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param o<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @param weight<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>         * @return sum of the squares of the differences<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>         */<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        public double residual(Object o, Dataset weight, boolean ignoreNaNs);<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>         * @return true if dataset contains any infinities<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         */<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>        public boolean containsInfs();<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>         * @return true if dataset contains any NaNs<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>         */<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        public boolean containsNans();<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>         * @return true if dataset contains any NaNs or infinities<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         */<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        public boolean containsInvalidNumbers();<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>        /**<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>         * @param axis<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>         * @param ignoreInvalids - Can be null, empty, or one or more booleans. By default, all booleans<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>         * are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>         * boolean to ignore infinities separately.<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>         * @return maxima along axis in dataset<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>         * @since 2.0<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>         */<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        public Dataset max(int axis, boolean... ignoreInvalids);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        /**<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * @param axis<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * @return minima along axis in dataset<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * @since 2.0<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         */<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>        public Dataset min(int axis, boolean... ignoreInvalids);<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>         * Find absolute index of maximum value (in a flattened view)<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         * @return absolute index<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         * @since 2.0<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>         */<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        public int argMax(boolean... ignoreInvalids);<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>         * Find indices of maximum values along given axis<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @param axis<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * @return index dataset<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * @since 2.0<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         */<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        public Dataset argMax(int axis, boolean... ignoreInvalids);<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>         * Find absolute index of minimum value (in a flattened view)<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         * @return absolute index<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>         * @since 2.0<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>         */<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public int argMin(boolean... ignoreInvalids);<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>         * Find indices of minimum values along given axis<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>         * @param axis<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>         * @return index dataset<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>         * @since 2.0<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>         */<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        public Dataset argMin(int axis, boolean... ignoreInvalids);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>        /**<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         * @return peak-to-peak value, the difference of maximum and minimum of 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 Number peakToPeak(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 axis<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * @return peak-to-peak dataset, the difference of maxima and minima of dataset along axis<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * @since 2.0<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         */<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>        public Dataset peakToPeak(int axis, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         * @return number of items in dataset<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 long count(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 axis<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>         * @return number of items along axis in dataset<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>         * @since 2.0<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>         */<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        public Dataset count(int axis, boolean... ignoreInvalids);<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 ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @return sum over all items in dataset as a Double, array of doubles or a complex number<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 Object sum(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 axis<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @return sum along axis in dataset<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @since 2.0<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         */<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        public Dataset sum(int axis, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @return product over all items 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 Object product(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 axis<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @return product along axis in dataset<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         * @since 2.0<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         */<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>        public Dataset product(int axis, boolean... ignoreInvalids);<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 axis<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         * @return mean along axis in dataset<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         * @since 2.0<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>         */<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        public Dataset mean(int axis, boolean... ignoreInvalids);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        /**<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>         * @return sample variance of whole dataset<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<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 double variance();<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>         * The sample variance can be calculated in two ways: if the dataset is considered as the<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>         * entire population then the sample variance is simply the second central moment:<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>         * <a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>         * &lt;pre&gt;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>         *    sum((x_i - m)^2)/N<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>         * where {x_i} are set of N population values and m is the mean<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>         *    m = sum(x_i)/N<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>         * &lt;/pre&gt;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>         * <a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>         * Otherwise, if the dataset is a set of samples (with replacement) from the population then<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>         * <a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>         * &lt;pre&gt;<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>         *    sum((x_i - m)^2)/(N-1)<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>         * where {x_i} are set of N sample values and m is the unbiased estimate of the mean<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>         *    m = sum(x_i)/N<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>         * &lt;/pre&gt;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>         * <a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>         * Note that the second definition is also the unbiased estimator of population variance.<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>         * <a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>         * @param isWholePopulation<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>         * @return sample variance<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>         * @since 2.0<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>         */<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param axis<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>         * @return sample variance along axis in dataset<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>         * @see #variance(int, boolean, boolean...) with isWholePopulation = false<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>         */<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>        public Dataset variance(int axis);<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>         * @param isWholePopulation<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>         * @return sample variance along axis in dataset<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>         * @since 2.0<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>         */<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>        public Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<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>         * Standard deviation is square root of the variance<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>         * <a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>         * @return sample standard deviation of all items in dataset<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>         * @see #stdDeviation(boolean, boolean...) with isWholePopulation = false<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>         * @since 2.0<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>         */<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>        public double stdDeviation();<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>         * Standard deviation is square root of the variance<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>         * <a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>         * @param isWholePopulation<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>         * @return sample standard deviation of all items in dataset<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>         * @see #variance(boolean, boolean...)<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>         * @since 2.0<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>         */<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        public double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * Standard deviation is square root of the variance<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>         * <a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * @param axis<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * @return standard deviation along axis in dataset<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * @see #stdDeviation(int, boolean, boolean...) with isWholePopulation = false<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         */<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>        public Dataset stdDeviation(int axis);<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>         * Standard deviation is square root of the variance<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         * <a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>         * @param axis<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>         * @param isWholePopulation<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * @return standard deviation along axis in dataset<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * @since 2.0<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         */<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span><a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>        /**<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>         * @return root mean square<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 double rootMeanSquare(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 axis<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>         * @return root mean square along axis in dataset<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>         * @since 2.0<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>         */<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>}<a name="line.1318"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..c7191ed
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1089 @@
+<!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 to given stop in steps of 1<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param stop<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>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create dataset with items ranging from 0 to given stop in steps of 1<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param stop<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param dtype<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.37"></a>
+<span class="sourceLineNo">038</span>         *             such as {@link #createRange(Class, double)} <a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */     <a name="line.39"></a>
+<span class="sourceLineNo">040</span>        @Deprecated<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public static Dataset createRange(final double stop, final int dtype) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                return createRange(0, stop, 1, dtype);<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>         * Create dataset with items ranging from given start to given stop in given steps<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param start<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param stop<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param step spacing between items<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param dtype<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * <a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.53"></a>
+<span class="sourceLineNo">054</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */     <a name="line.55"></a>
+<span class="sourceLineNo">056</span>        @Deprecated<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static Dataset createRange(final double start, final double stop, final double step, final int dtype) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<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>                switch (dtype) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                case Dataset.BOOL:<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        break;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                case Dataset.INT8:<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        return ByteDataset.createRange(start, stop, step);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                case Dataset.INT16:<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return ShortDataset.createRange(start, stop, step);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                case Dataset.INT32:<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        return IntegerDataset.createRange(start, stop, step);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                case Dataset.INT64:<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        return LongDataset.createRange(start, stop, step);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                case Dataset.FLOAT32:<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return FloatDataset.createRange(start, stop, step);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                case Dataset.FLOAT64:<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        return DoubleDataset.createRange(start, stop, step);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                case Dataset.COMPLEX64:<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                case Dataset.COMPLEX128:<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        return ComplexDoubleDataset.createRange(start, stop, step);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                throw new IllegalArgumentException("dtype not known");<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>         * Create compound dataset with items of given size ranging from 0 to given stop in steps of 1<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param itemSize<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param stop<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param dtype<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * <a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.92"></a>
+<span class="sourceLineNo">093</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.93"></a>
+<span class="sourceLineNo">094</span>         */     <a name="line.94"></a>
+<span class="sourceLineNo">095</span>        @Deprecated<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public static CompoundDataset createRange(final int itemSize, final double stop, final int dtype) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                return createRange(itemSize, 0, stop, 1, dtype);<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>         * Create compound dataset with items of given size ranging from given start to given stop in given steps<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param itemSize<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param start<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @param stop<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param step spacing between items<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param dtype<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * <a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.109"></a>
+<span class="sourceLineNo">110</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */     <a name="line.111"></a>
+<span class="sourceLineNo">112</span>        @Deprecated<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public static CompoundDataset createRange(final int itemSize, final double start, final double stop, final double step, final int dtype) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                if (itemSize &lt; 1) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException("Item size must be greater or equal to 1");<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<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>                switch (dtype) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                case Dataset.BOOL:<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        break;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                case Dataset.ARRAYINT8:<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                case Dataset.INT8:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                case Dataset.ARRAYINT16:<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                case Dataset.INT16:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return CompoundShortDataset.createRange(itemSize, start, stop, step);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                case Dataset.ARRAYINT32:<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                case Dataset.INT32:<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                case Dataset.ARRAYINT64:<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                case Dataset.INT64:<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        return CompoundLongDataset.createRange(itemSize, start, stop, step);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                case Dataset.ARRAYFLOAT32:<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                case Dataset.FLOAT32:<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        return CompoundFloatDataset.createRange(itemSize, start, stop, step);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                case Dataset.ARRAYFLOAT64:<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                case Dataset.FLOAT64:<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        return CompoundDoubleDataset.createRange(itemSize, start, stop, step);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                case Dataset.COMPLEX64:<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        if (itemSize != 2) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                case Dataset.COMPLEX128:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        if (itemSize != 2) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                throw new IllegalArgumentException("dtype not known");<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>         * Create a dataset from object (automatically detect dataset type)<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         *<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @param obj<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         *            can be Java list, array or Number<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         * @return dataset<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public static Dataset createFromObject(Object obj) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                return createFromObject(obj, null);<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * <a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * @param obj<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         *            can be Java list, array or Number<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         * @param shape can be null<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, int... shape) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (obj instanceof IDataset) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        Dataset d = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        if (shape != null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                d.setShape(shape);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        return d;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                }<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                if (obj instanceof BigInteger) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        obj = ((BigInteger) obj).longValue();<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>                final int dtype = DTypeUtils.getDTypeFromObject(obj);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                return createFromObject(dtype, obj, shape);<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>         * Create a dataset from object (automatically detect dataset type)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param isUnsigned<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         *            if true, interpret integer values as unsigned by increasing element bit width<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param obj<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         *            can be a Java list, array or Number<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @return dataset<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public static Dataset createFromObject(boolean isUnsigned, final Object obj) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                Dataset a = createFromObject(obj);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                if (isUnsigned) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        a = DatasetUtils.makeUnsigned(a);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                return a;<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>         * Create a dataset from object<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @param dtype<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * @param obj<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         *            can be a Java list, array or Number<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @return dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * <a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.214"></a>
+<span class="sourceLineNo">215</span>         *             such as {@link #createFromObject(Class, Object, int)} <a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */     <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        @Deprecated<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        public static Dataset createFromObject(final int dtype, final Object obj) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return createFromObject(dtype, obj, null);<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 dataset from object<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param dtype<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @param obj<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         *            can be a Java list, array or Number<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param shape can be null<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @return dataset<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * <a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.231"></a>
+<span class="sourceLineNo">232</span>         *             such as {@link #createFromObject(Class, Object, int...)} <a name="line.232"></a>
+<span class="sourceLineNo">233</span>         */     <a name="line.233"></a>
+<span class="sourceLineNo">234</span>        @Deprecated<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        public static Dataset createFromObject(final int dtype, final Object obj, final int... shape) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                return createFromObject(1, dtype, obj, shape);<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>        /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * Create a dataset from object<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @param itemSize<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @param dtype<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param obj<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         *            can be a Java list, array or Number<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * @param shape can be null<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @return dataset<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         * <a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.249"></a>
+<span class="sourceLineNo">250</span>         *             such as {@link #createFromObject(int, Class, Object, int...)} <a name="line.250"></a>
+<span class="sourceLineNo">251</span>         */     <a name="line.251"></a>
+<span class="sourceLineNo">252</span>        @Deprecated<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        public static Dataset createFromObject(final int itemSize, final int dtype, final Object obj, final int... shape) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                Dataset d = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (obj instanceof IDataset) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        d = itemSize == 1 ? DatasetUtils.cast((IDataset) obj, dtype) :<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                DatasetUtils.cast((IDataset) obj, false, dtype, itemSize);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                } else {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        // primitive arrays<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        Class&lt;? extends Object&gt; ca = obj == null ? null : obj.getClass().getComponentType();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        if (ca != null &amp;&amp; (ca.isPrimitive() || ca.equals(String.class))) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                switch (dtype) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                case Dataset.COMPLEX64:<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return new ComplexFloatDataset(DTypeUtils.toFloatArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                case Dataset.COMPLEX128:<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                                        return new ComplexDoubleDataset(DTypeUtils.toDoubleArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                default:<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                        d = createFromPrimitiveArray(DTypeUtils.getDTypeFromClass(ca), obj);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                        if (!DTypeUtils.isDTypeElemental(dtype)) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                                d = DatasetUtils.createCompoundDataset(d, dtype == Dataset.RGB ? 3 : itemSize);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                        d = DatasetUtils.cast(d, dtype);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        } else {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                switch (dtype) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                case Dataset.BOOL:<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                        d = BooleanDataset.createFromObject(obj);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        break;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                case Dataset.INT8:<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                        d = ByteDataset.createFromObject(obj);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        break;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                case Dataset.INT16:<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                        d = ShortDataset.createFromObject(obj);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                        break;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                case Dataset.INT32:<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                        d = IntegerDataset.createFromObject(obj);<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                        break;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                case Dataset.INT64:<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                        d = LongDataset.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.ARRAYINT8:<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                        d = CompoundByteDataset.createFromObject(itemSize, obj);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        break;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                case Dataset.ARRAYINT16:<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                        d = CompoundShortDataset.createFromObject(itemSize, obj);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        break;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                case Dataset.ARRAYINT32:<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        d = CompoundIntegerDataset.createFromObject(itemSize, obj);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        break;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                case Dataset.ARRAYINT64:<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                        d = CompoundLongDataset.createFromObject(itemSize, obj);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                        break;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                case Dataset.FLOAT32:<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        d = FloatDataset.createFromObject(obj);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                        break;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                case Dataset.FLOAT64:<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        d = DoubleDataset.createFromObject(obj);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        break;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                case Dataset.ARRAYFLOAT32:<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                        d = CompoundFloatDataset.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.ARRAYFLOAT64:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                        d = CompoundDoubleDataset.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.COMPLEX64:<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        d = ComplexFloatDataset.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.COMPLEX128:<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                        d = ComplexDoubleDataset.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.DATE:<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                        d = DateDatasetImpl.createFromObject(obj);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                        break;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                case Dataset.STRING:<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        d = StringDataset.createFromObject(obj);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                        break;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                case Dataset.OBJECT:<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                        d = ObjectDataset.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.RGB:<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        d = RGBDataset.createFromObject(obj);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                        break;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                default:<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                        throw new IllegalArgumentException("Dataset type is not known");<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>                }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>                if (shape != null &amp;&amp; !(shape.length == 0 &amp;&amp; d.getSize() &gt; 1)) { // allow zero-rank datasets<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        d.setShape(shape);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return d;<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 createFromPrimitiveArray(final int dtype, final Object array) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                switch (dtype) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                case Dataset.BOOL:<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return new BooleanDataset((boolean []) array);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                case Dataset.INT8:<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        return new ByteDataset((byte []) array);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                case Dataset.INT16:<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        return new ShortDataset((short []) array);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                case Dataset.INT32:<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return new IntegerDataset((int []) array, null);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                case Dataset.INT64:<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new LongDataset((long []) array);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                case Dataset.FLOAT32:<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        return new FloatDataset((float []) array);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                case Dataset.FLOAT64:<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        return new DoubleDataset((double []) array);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                case Dataset.STRING:<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        return new StringDataset((String []) array);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                case Dataset.DATE:<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        return new DateDatasetImpl((Date []) array);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                default:<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        return null;<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>        /**<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * Create dataset of appropriate type from list<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * <a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @param objectList<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * @return dataset filled with values from list<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         */<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        public static Dataset createFromList(List&lt;?&gt; objectList) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                if (objectList == null || objectList.size() == 0) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        throw new IllegalArgumentException("No list or zero-length list given");<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>                Object obj = null;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                for (Object o : objectList) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        if (o != null) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                obj = o;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                break;<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>                if (obj == null) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        return zeros(new int[objectList.size()], Dataset.OBJECT);<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>                Class&lt;? extends Object&gt; clazz = obj.getClass();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                if (!DTypeUtils.isClassSupportedAsElement(clazz)) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        throw new IllegalArgumentException("Class of list element not supported");<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>                int dtype = DTypeUtils.getDTypeFromClass(clazz);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return createFromList(dtype, objectList);<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>         * Create dataset of given type from list<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         *<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @param dtype<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @param objectList<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return dataset filled with values from list<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * <a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.409"></a>
+<span class="sourceLineNo">410</span>         *             such as {@link #createFromList(Class, List&lt;?&gt;)} <a name="line.410"></a>
+<span class="sourceLineNo">411</span>         */     <a name="line.411"></a>
+<span class="sourceLineNo">412</span>        @Deprecated<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        public static Dataset createFromList(final int dtype, List&lt;?&gt; objectList) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                int len = objectList.size();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                Dataset result = zeros(new int[] { len }, dtype);<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>                for (int i = 0; i &lt; len; i++) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        result.setObjectAbs(i, objectList.get(i));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                return result;<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>         * Create compound dataset of given type from given parts<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         *<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         * @param objects<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * @return compound dataset<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        public static CompoundDataset createCompoundDataset(Object... objects) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return DatasetUtils.createCompoundDataset(datasets);<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>         * Create compound dataset of given type from given parts<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         *<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param dtype<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @param objects<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         * @return compound dataset<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         * <a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *             such as {@link #createCompoundDataset(Class, Object...)} <a name="line.445"></a>
+<span class="sourceLineNo">446</span>         */     <a name="line.446"></a>
+<span class="sourceLineNo">447</span>        @Deprecated<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        public static CompoundDataset createCompoundDataset(final int dtype, Object... objects) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return DatasetUtils.createCompoundDataset(dtype, datasets);<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>        /**<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * Create complex dataset of given type from real and imaginary parts<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         *<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         * @param dtype<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         * @param real<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         * @param imag<a name="line.461"></a>
+<span class="sourceLineNo">462</span>         * @return complex dataset<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         * <a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.464"></a>
+<span class="sourceLineNo">465</span>         *             such as {@link #createComplexDataset(Class, Object, Object)} <a name="line.465"></a>
+<span class="sourceLineNo">466</span>         */     <a name="line.466"></a>
+<span class="sourceLineNo">467</span>        @Deprecated<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public static CompoundDataset createComplexDataset(final int dtype, Object real, Object imag) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                switch (dtype) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                case Dataset.COMPLEX64:<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        return new ComplexFloatDataset(createFromObject(real), createFromObject(imag));<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                case Dataset.COMPLEX128:<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        return new ComplexDoubleDataset(createFromObject(real), createFromObject(imag));<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                default:<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        throw new IllegalArgumentException("Dataset class must be a complex one");<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>         * @param shape<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         * @return a new double dataset of given shape, filled with zeros<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public static DoubleDataset zeros(final int... shape) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                return zeros(DoubleDataset.class, shape);<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>        /**<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param shape<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param dtype<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @return a new dataset of given shape and type, filled with zeros<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * <a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.492"></a>
+<span class="sourceLineNo">493</span>         *             such as {@link #zeros(Class, int...)} <a name="line.493"></a>
+<span class="sourceLineNo">494</span>         */     <a name="line.494"></a>
+<span class="sourceLineNo">495</span>        @Deprecated<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        public static Dataset zeros(final int[] shape, final int dtype) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                switch (dtype) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                case Dataset.BOOL:<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        return new BooleanDataset(shape);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                case Dataset.INT8:<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                case Dataset.ARRAYINT8:<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        return new ByteDataset(shape);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                case Dataset.INT16:<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                case Dataset.ARRAYINT16:<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        return new ShortDataset(shape);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                case Dataset.RGB:<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        return new RGBDataset(shape);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                case Dataset.INT32:<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                case Dataset.ARRAYINT32:<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                        return new IntegerDataset(shape);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                case Dataset.INT64:<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                case Dataset.ARRAYINT64:<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        return new LongDataset(shape);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                case Dataset.FLOAT32:<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                case Dataset.ARRAYFLOAT32:<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return new FloatDataset(shape);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                case Dataset.FLOAT64:<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                case Dataset.ARRAYFLOAT64:<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        return new DoubleDataset(shape);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                case Dataset.COMPLEX64:<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        return new ComplexFloatDataset(shape);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                case Dataset.COMPLEX128:<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        return new ComplexDoubleDataset(shape);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                case Dataset.STRING:<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return new StringDataset(shape);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                case Dataset.DATE:<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        return new DateDatasetImpl(shape);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                case Dataset.OBJECT:<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        return new ObjectDataset(shape);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                throw new IllegalArgumentException("dtype not known or unsupported");<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>        /**<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * @param itemSize<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @param shape<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @param dtype<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         * <a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.541"></a>
+<span class="sourceLineNo">542</span>         *             such as {@link #zeros(int, Class, int...)} <a name="line.542"></a>
+<span class="sourceLineNo">543</span>         */     <a name="line.543"></a>
+<span class="sourceLineNo">544</span>        @Deprecated<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public static Dataset zeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                if (itemSize == 1) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        return zeros(shape, dtype);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return compoundZeros(itemSize, shape, dtype);<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>        /**<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @param itemSize<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param shape<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * @param dtype<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         * @since 2.0<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         * <a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *             such as {@link #compoundZeros(int, Class, int)} <a name="line.560"></a>
+<span class="sourceLineNo">561</span>         */     <a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Deprecated<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public static CompoundDataset compoundZeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                switch (dtype) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                case Dataset.INT8:<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                case Dataset.ARRAYINT8:<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        return new CompoundByteDataset(itemSize, shape);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                case Dataset.INT16:<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                case Dataset.ARRAYINT16:<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        return new CompoundShortDataset(itemSize, shape);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                case Dataset.RGB:<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        if (itemSize != 3) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return new RGBDataset(shape);<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                case Dataset.INT32:<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                case Dataset.ARRAYINT32:<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        return new CompoundIntegerDataset(itemSize, shape);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                case Dataset.INT64:<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                case Dataset.ARRAYINT64:<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        return new CompoundLongDataset(itemSize, shape);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                case Dataset.FLOAT32:<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                case Dataset.ARRAYFLOAT32:<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        return new CompoundFloatDataset(itemSize, shape);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                case Dataset.FLOAT64:<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                case Dataset.ARRAYFLOAT64:<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        return new CompoundDoubleDataset(itemSize, shape);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                case Dataset.COMPLEX64:<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        if (itemSize != 2) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        return new ComplexFloatDataset(shape);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                case Dataset.COMPLEX128:<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        if (itemSize != 2) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        return new ComplexDoubleDataset(shape);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                throw new IllegalArgumentException("dtype not a known compound type");<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>         * @param dataset<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         * @return a new dataset of same shape and type as input dataset, filled with zeros<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         */<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        @SuppressWarnings("unchecked")<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        public static &lt;T extends Dataset&gt; T zeros(final T dataset) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int dtype = dataset.getDType();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return (T) (DTypeUtils.isDTypeElemental(dtype) ? zeros(dataset, dtype) :<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        compoundZeros(dataset.getElementsPerItem(),  dataset.getShapeRef(), dtype));<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>        /**<a name="line.613"></a>
+<span class="sourceLineNo">614</span>         * Create a new dataset of same shape as input dataset, filled with zeros. If dtype is not<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * explicitly compound then an elemental dataset is created <a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param dataset<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param dtype<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return a new dataset<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         * <a name="line.619"></a>
+<span class="sourceLineNo">620</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.620"></a>
+<span class="sourceLineNo">621</span>         *             such as {@link #zeros(Dataset, Class)} <a name="line.621"></a>
+<span class="sourceLineNo">622</span>         */     <a name="line.622"></a>
+<span class="sourceLineNo">623</span>        @Deprecated<a name="line.623"></a>
+<span class="sourceLineNo">624</span>        public static Dataset zeros(final Dataset dataset, final int dtype) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                final int[] shape = dataset.getShapeRef();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                return zeros(isize, shape, dtype);<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>         * @param dataset<a name="line.632"></a>
+<span class="sourceLineNo">633</span>         * @return a new dataset of same shape and type as input dataset, filled with ones<a name="line.633"></a>
+<span class="sourceLineNo">634</span>         */<a name="line.634"></a>
+<span class="sourceLineNo">635</span>        @SuppressWarnings("unchecked")<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public static &lt;T extends Dataset&gt; T ones(final T dataset) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                return (T) ones(dataset, dataset.getDType());<a name="line.637"></a>
+<span class="sourceLineNo">638</span>        }<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>         * Create a new dataset of same shape as input dataset, filled with ones. If dtype is not<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         * explicitly compound then an elemental dataset is created<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         * @param dataset<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         * @param dtype<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @return a new dataset<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         * <a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.647"></a>
+<span class="sourceLineNo">648</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.648"></a>
+<span class="sourceLineNo">649</span>         */     <a name="line.649"></a>
+<span class="sourceLineNo">650</span>        @Deprecated<a name="line.650"></a>
+<span class="sourceLineNo">651</span>        public static Dataset ones(final Dataset dataset, final int dtype) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                final int[] shape = dataset.getShapeRef();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>                return ones(isize, shape, dtype);<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>        /**<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @param shape<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         * @return a new double dataset of given shape, filled with ones<a name="line.660"></a>
+<span class="sourceLineNo">661</span>         */<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        public static DoubleDataset ones(final int... shape) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return ones(DoubleDataset.class, shape);<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>         * @param shape<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         * @param dtype<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         * @return a new dataset of given shape and type, filled with ones<a name="line.669"></a>
+<span class="sourceLineNo">670</span>         * <a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.671"></a>
+<span class="sourceLineNo">672</span>         *             such as {@link #ones(int[], Class)} <a name="line.672"></a>
+<span class="sourceLineNo">673</span>         */     <a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Deprecated<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public static Dataset ones(final int[] shape, final int dtype) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                switch (dtype) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                case Dataset.BOOL:<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        return BooleanDataset.ones(shape);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                case Dataset.INT8:<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        return ByteDataset.ones(shape);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                case Dataset.INT16:<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        return ShortDataset.ones(shape);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                case Dataset.RGB:<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        return new RGBDataset(shape).fill(1);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                case Dataset.INT32:<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        return IntegerDataset.ones(shape);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                case Dataset.INT64:<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                        return LongDataset.ones(shape);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                case Dataset.FLOAT32:<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        return FloatDataset.ones(shape);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                case Dataset.FLOAT64:<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        return DoubleDataset.ones(shape);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                case Dataset.COMPLEX64:<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        return ComplexFloatDataset.ones(shape);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                case Dataset.COMPLEX128:<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                throw new IllegalArgumentException("dtype not known");<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>         * @param itemSize<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         * @param shape<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         * @param dtype<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         * @return a new dataset of given item size, shape and type, filled with ones<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         * <a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.708"></a>
+<span class="sourceLineNo">709</span>         *             such as {@link #ones(Class, int...)} <a name="line.709"></a>
+<span class="sourceLineNo">710</span>         */     <a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Deprecated<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public static Dataset ones(final int itemSize, final int[] shape, final int dtype) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                if (itemSize == 1) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        return ones(shape, dtype);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                }<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                switch (dtype) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                case Dataset.INT8:<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                case Dataset.ARRAYINT8:<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        return CompoundByteDataset.ones(itemSize, shape);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                case Dataset.INT16:<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                case Dataset.ARRAYINT16:<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        return CompoundShortDataset.ones(itemSize, shape);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                case Dataset.RGB:<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        if (itemSize != 3) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        return new RGBDataset(shape).fill(1);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                case Dataset.INT32:<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                case Dataset.ARRAYINT32:<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        return CompoundIntegerDataset.ones(itemSize, shape);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                case Dataset.INT64:<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                case Dataset.ARRAYINT64:<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        return CompoundLongDataset.ones(itemSize, shape);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                case Dataset.FLOAT32:<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                case Dataset.ARRAYFLOAT32:<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        return CompoundFloatDataset.ones(itemSize, shape);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                case Dataset.FLOAT64:<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                case Dataset.ARRAYFLOAT64:<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        return CompoundDoubleDataset.ones(itemSize, shape);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                case Dataset.COMPLEX64:<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        if (itemSize != 2) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        }<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        return ComplexFloatDataset.ones(shape);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                case Dataset.COMPLEX128:<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        if (itemSize != 2) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                throw new IllegalArgumentException("dtype not a known compound type");<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>        /**<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         * <a name="line.756"></a>
+<span class="sourceLineNo">757</span>         * @param start<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         * @param stop<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * @param length number of points<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * @param dtype<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @return dataset with linearly spaced values<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * <a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.763"></a>
+<span class="sourceLineNo">764</span>         *             such as {@link #createLinearSpace(Class, double, double, int)} <a name="line.764"></a>
+<span class="sourceLineNo">765</span>         */     <a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Deprecated<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public static Dataset createLinearSpace(final double start, final double stop, final int length, final int dtype) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                if (length &lt; 1) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                } else if (length == 1) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        return createFromObject(dtype, start);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                } else {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        Dataset ds = zeros(new int[] {length}, dtype);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        double num = stop - start;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        double den = length - 1;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        double value;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        <a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                value = start + (num * i) / den;<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                ds.setObjectAbs(i, value);<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>                        return ds;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                }<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>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * spaced sequence of points<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * <a name="line.791"></a>
+<span class="sourceLineNo">792</span>         * @param start<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         * @param stop<a name="line.793"></a>
+<span class="sourceLineNo">794</span>         * @param length number of points<a name="line.794"></a>
+<span class="sourceLineNo">795</span>         * @param base<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * @param dtype<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @return dataset with logarithmically spaced values<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * <a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.799"></a>
+<span class="sourceLineNo">800</span>         *             such as {@link #createLogSpace(Class, double, double, int, double)} <a name="line.800"></a>
+<span class="sourceLineNo">801</span>         */     <a name="line.801"></a>
+<span class="sourceLineNo">802</span>        @Deprecated<a name="line.802"></a>
+<span class="sourceLineNo">803</span>        public static Dataset createLogSpace(final double start, final double stop, final int length, final double base, final int dtype) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                if (length &lt; 1) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                } else if (length == 1) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        return createFromObject(dtype, Math.pow(base, start));<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                } else {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        Dataset ds = zeros(new int[] {length}, dtype);<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        double step = (stop - start) / (length - 1);<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        double value;<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        <a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                value = start + i * step;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                ds.setObjectAbs(i, Math.pow(base, value));<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>                        return ds;<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>         * Create dataset with items ranging from 0 to given stop in steps of 1<a name="line.823"></a>
+<span class="sourceLineNo">824</span>         * @param clazz<a name="line.824"></a>
+<span class="sourceLineNo">825</span>         * @param stop<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         */<a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @SuppressWarnings("unchecked")<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public static &lt;T extends Dataset&gt; T createRange(Class&lt;T&gt; clazz, final double stop) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return (T) createRange(0, stop, 1, DTypeUtils.getDType(clazz));<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>         * Create dataset with items ranging from given start to given stop in given steps<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @param clazz dataset class<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @param start<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * @param stop<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * @param step spacing between items<a name="line.838"></a>
+<span class="sourceLineNo">839</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         */<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        @SuppressWarnings("unchecked")<a name="line.841"></a>
+<span class="sourceLineNo">842</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.842"></a>
+<span class="sourceLineNo">843</span>                return (T) createRange(start, stop, step, DTypeUtils.getDType(clazz));<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>        /**<a name="line.846"></a>
+<span class="sourceLineNo">847</span>         * Create a dataset from object<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         * @param clazz dataset class<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param obj<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         *            can be a Java list, array or Number<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         * @param shape can be null<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         * @return dataset<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.853"></a>
+<span class="sourceLineNo">854</span>         */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        @SuppressWarnings("unchecked")<a name="line.855"></a>
+<span class="sourceLineNo">856</span>        public static &lt;T extends Dataset&gt; T createFromObject(Class&lt;T&gt; clazz, Object obj, int... shape) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                return (T) createFromObject(1, DTypeUtils.getDType(clazz), obj, shape);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        }<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>         * Create a compound dataset from object<a name="line.861"></a>
+<span class="sourceLineNo">862</span>         * @param itemSize<a name="line.862"></a>
+<span class="sourceLineNo">863</span>         * @param clazz dataset class<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param obj<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         *            can be a Java list, array or Number<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         * @param shape can be null<a name="line.866"></a>
+<span class="sourceLineNo">867</span>         * @return dataset<a name="line.867"></a>
+<span class="sourceLineNo">868</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.868"></a>
+<span class="sourceLineNo">869</span>         */<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        @SuppressWarnings("unchecked")<a name="line.870"></a>
+<span class="sourceLineNo">871</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.871"></a>
+<span class="sourceLineNo">872</span>                return (T) createFromObject(itemSize, DTypeUtils.getDType(clazz), obj, shape);<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>         * Create dataset of given class from list<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         *<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * @param clazz dataset class<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param objectList<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @return dataset filled with values from list<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        @SuppressWarnings("unchecked")<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        public static &lt;T extends Dataset&gt; T createFromList(Class&lt;T&gt; clazz, List&lt;?&gt; objectList) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                return (T) createFromList(DTypeUtils.getDType(clazz), objectList);<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>        /**<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         * Create compound dataset of given class from given parts<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         *<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param clazz<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         * @param objects<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @return compound dataset<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         */<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        @SuppressWarnings("unchecked")<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        public static &lt;T extends Dataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, Object... objects) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), objects);<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>         * Create complex dataset of given class from real and imaginary parts<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param clazz dataset class<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param real<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param imag<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         * @return complex dataset<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         */<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @SuppressWarnings("unchecked")<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        public static &lt;T extends Dataset&gt; T createComplexDataset(Class&lt;T&gt; clazz, Object real, Object imag) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                return (T) createComplexDataset(DTypeUtils.getDType(clazz), real, imag);<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 clazz dataset class<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @param shape<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         * @return a new dataset of given shape and class, filled with zeros<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         */<a name="line.916"></a>
+<span class="sourceLineNo">917</span>        @SuppressWarnings("unchecked")<a name="line.917"></a>
+<span class="sourceLineNo">918</span>        public static &lt;T extends Dataset&gt; T zeros(Class&lt;T&gt; clazz, int... shape) {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                return (T) zeros(shape, DTypeUtils.getDType(clazz));<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>        /**<a name="line.922"></a>
+<span class="sourceLineNo">923</span>         * @param itemSize<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         * @param clazz dataset class<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         * @param shape<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @return a new dataset of given item size, shape and class, filled with zeros<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         */<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        @SuppressWarnings("unchecked")<a name="line.929"></a>
+<span class="sourceLineNo">930</span>        public static &lt;T extends Dataset&gt; T zeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                return (T) zeros(itemSize, shape, DTypeUtils.getDType(clazz));<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>        /**<a name="line.934"></a>
+<span class="sourceLineNo">935</span>         * @param dataset<a name="line.935"></a>
+<span class="sourceLineNo">936</span>         * @param clazz dataset class<a name="line.936"></a>
+<span class="sourceLineNo">937</span>         * @return a new dataset of given class with same shape as input dataset, filled with zeros<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         */<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        @SuppressWarnings("unchecked")<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        public static &lt;T extends Dataset&gt; T zeros(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                return (T) zeros(dataset, DTypeUtils.getDType(clazz));<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>        /**<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         * @param itemSize<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         * @param clazz compound dataset class<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @param shape<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         * @return a new compound dataset of given item size, shape and class, filled with zeros<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         * @since 2.0<a name="line.949"></a>
+<span class="sourceLineNo">950</span>         */<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        @SuppressWarnings("unchecked")<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        public static &lt;T extends CompoundDataset&gt; T compoundZeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                return (T) compoundZeros(itemSize, shape, DTypeUtils.getDType(clazz));<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>        /**<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 shape<a name="line.958"></a>
+<span class="sourceLineNo">959</span>         * @return a new dataset of given shape and class, filled with ones<a name="line.959"></a>
+<span class="sourceLineNo">960</span>         */<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        @SuppressWarnings("unchecked")<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        public static &lt;T extends Dataset&gt; T ones(Class&lt;T&gt; clazz, int... shape) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                return (T) ones(shape, DTypeUtils.getDType(clazz));<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<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>         * @param itemSize<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.968"></a>
+<span class="sourceLineNo">969</span>         * @param clazz dataset class<a name="line.969"></a>
+<span class="sourceLineNo">970</span>         * @param shape<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         * @return a new dataset of given item size, shape and class, filled with ones<a name="line.971"></a>
+<span class="sourceLineNo">972</span>         */<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        @SuppressWarnings("unchecked")<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        public static &lt;T extends Dataset&gt; T ones(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                return (T) ones(itemSize, shape, DTypeUtils.getDType(clazz));<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>        /**<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         * @param dataset<a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * @param clazz dataset class<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         * @return a new dataset of given class with same shape as input dataset, filled with ones<a name="line.981"></a>
+<span class="sourceLineNo">982</span>         */<a name="line.982"></a>
+<span class="sourceLineNo">983</span>        @SuppressWarnings("unchecked")<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        public static &lt;T extends Dataset&gt; T ones(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                return (T) ones(dataset, DTypeUtils.getDType(clazz));<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>        /**<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         * <a name="line.990"></a>
+<span class="sourceLineNo">991</span>         * @param clazz dataset class<a name="line.991"></a>
+<span class="sourceLineNo">992</span>         * @param start<a name="line.992"></a>
+<span class="sourceLineNo">993</span>         * @param stop<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * @param length number of points<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * @return dataset with linearly spaced values<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         */<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        @SuppressWarnings("unchecked")<a name="line.997"></a>
+<span class="sourceLineNo">998</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.998"></a>
+<span class="sourceLineNo">999</span>                return (T) createLinearSpace(start, stop, length, DTypeUtils.getDType(clazz));<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>        /**<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * spaced sequence of points<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * <a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @param start<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         * @param stop<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>         * @param length number of points<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>         * @param base<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>         * @return dataset with logarithmically spaced values<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         */<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        @SuppressWarnings("unchecked")<a name="line.1013"></a>
+<span class="sourceLineNo">1014</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.1014"></a>
+<span class="sourceLineNo">1015</span>                return (T) createLogSpace(start, stop, length, base, DTypeUtils.getDType(clazz));<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..4c0693e
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,2732 @@
+<!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.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.math3.util.MathArrays;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.DatasetException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.slf4j.Logger;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.slf4j.LoggerFactory;<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> * Utilities for manipulating datasets<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>@SuppressWarnings("unchecked")<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class DatasetUtils {<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>         * Setup the logging facilities<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        transient protected static final Logger utilsLogger = LoggerFactory.getLogger(DatasetUtils.class);<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>         * Append copy of dataset with another dataset along n-th axis<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * <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 axis<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         *            number of axis (negative number counts from last)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return appended dataset<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public static Dataset append(IDataset a, IDataset b, int axis) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                final int[] ashape = a.getShape();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int rank = ashape.length;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int[] bshape = b.getShape();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                if (rank != bshape.length) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        throw new IllegalArgumentException("Incompatible number of dimensions");<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                }<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                if (axis &gt;= rank) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        throw new IllegalArgumentException("Axis specified exceeds array dimensions");<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                } else if (axis &gt; -rank) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        if (axis &lt; 0)<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                axis += rank;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                } else {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        throw new IllegalArgumentException("Axis specified is less than " + (-rank));<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>                for (int i = 0; i &lt; rank; i++) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        if (i != axis &amp;&amp; ashape[i] != bshape[i]) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                throw new IllegalArgumentException("Incompatible dimensions");<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>                final int[] nshape = new int[rank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        nshape[i] = ashape[i];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                nshape[axis] += bshape[axis];<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                final int ot = DTypeUtils.getDType(b);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                final int dt = DTypeUtils.getDType(a);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                @SuppressWarnings("deprecation")<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                Dataset ds = DatasetFactory.zeros(a.getElementsPerItem(), nshape, dt &gt; ot ? dt : ot);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                IndexIterator iter = ds.getIterator(true);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                int[] pos = iter.getPos();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                while (iter.hasNext()) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        int d = ashape[axis];<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        if (pos[axis] &lt; d) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                ds.setObjectAbs(iter.index, a.getObject(pos));<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        } else {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                pos[axis] -= d;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                ds.setObjectAbs(iter.index, b.getObject(pos));<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                                pos[axis] += d;<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>                return ds;<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>         * Changes specific items of dataset by replacing them with other array<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param a<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * @param indices dataset interpreted as integers<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param values<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * @return changed dataset<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public static &lt;T extends Dataset&gt; T put(final T a, final Dataset indices, Object values) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                IndexIterator it = indices.getIterator();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                int vlen = vd.getSize();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                int v = 0;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                while (it.hasNext()) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        a.setObjectAbs((int) indices.getElementLongAbs(it.index), vd.getObjectAbs(v++));<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                return a;<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>         * Changes specific items of dataset by replacing them with other array<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param a<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param indices<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param values<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @return changed dataset<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public static &lt;T extends Dataset&gt; T put(final T a, final int[] indices, Object values) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                int ilen = indices.length;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                int vlen = vd.getSize();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                for (int i = 0, v= 0; i &lt; ilen; i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        a.setObjectAbs(indices[i], vd.getObjectAbs(v++));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                return a;<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>         * Take items from dataset along an axis<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param indices dataset interpreted as integers<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param axis if null, then use flattened view<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @return a sub-array<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        public static &lt;T extends Dataset&gt; T take(final T a, final Dataset indices, Integer axis) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                IntegerDataset indexes = (IntegerDataset) indices.flatten().cast(Dataset.INT32);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                return take(a, indexes.getData(), axis);<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>         * Take items from dataset along an axis<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param indices<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param axis if null, then use flattened view<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @return a sub-array<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @SuppressWarnings("deprecation")<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public static &lt;T extends Dataset&gt; T take(final T a, final int[] indices, Integer axis) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                if (indices == null || indices.length == 0) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        utilsLogger.error("No indices given");<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        throw new IllegalArgumentException("No indices given");<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                int[] ashape = a.getShape();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                final int rank = ashape.length;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                final int at = a.getDType();<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                final int ilen = indices.length;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                final int is = a.getElementsPerItem();<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>                Dataset result;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                if (axis == null) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        ashape = new int[1];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        ashape[0] = ilen;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        result = DatasetFactory.zeros(is, ashape, at);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        Serializable src = a.getBuffer();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                ((AbstractDataset) result).setItemDirect(i, indices[i], src);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                } else {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        axis = a.checkAxis(axis);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        ashape[axis] = ilen;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        result = DatasetFactory.zeros(is, ashape, at);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        int[] dpos = new int[rank];<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        int[] spos = new int[rank];<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        boolean[] axes = new boolean[rank];<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        Arrays.fill(axes, true);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        axes[axis] = false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        Serializable src = a.getBuffer();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                spos[axis] = indices[i];<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                dpos[axis] = i;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                SliceIterator siter = a.getSliceIteratorFromAxes(spos, axes);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                SliceIterator diter = result.getSliceIteratorFromAxes(dpos, axes);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                        ((AbstractDataset) result).setItemDirect(diter.index, siter.index, src);<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>                result.setDirty();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                return (T) result;<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>        /**<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * Construct a dataset that contains the original dataset repeated the number<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * of times in each axis given by corresponding entries in the reps array<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         *<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @param a<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         * @param reps <a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * @return tiled dataset<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         */<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public static Dataset tile(final IDataset a, int... reps) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                int[] shape = a.getShape();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                int rank = shape.length;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                final int rlen = reps.length;<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>                // expand shape<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (rank &lt; rlen) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] newShape = new int[rlen];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        int extraRank = rlen - rank;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                newShape[i] = 1;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                newShape[i+extraRank] = shape[i];<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>                        shape = newShape;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        rank = rlen;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                } else if (rank &gt; rlen) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        int[] newReps = new int[rank];<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        int extraRank = rank - rlen;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                newReps[i] = 1;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        for (int i = 0; i &lt; rlen; i++) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                newReps[i+extraRank] = reps[i];<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        reps = newReps;<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>                // calculate new shape<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int[] newShape = new int[rank];<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        newShape[i] = shape[i]*reps[i];<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>                @SuppressWarnings("deprecation")<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                Dataset tdata = DatasetFactory.zeros(a.getElementsPerItem(), newShape, DTypeUtils.getDType(a));<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                // decide which way to put slices<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                boolean manyColumns;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                if (rank == 1)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        manyColumns = true;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                else<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        manyColumns = shape[rank-1] &gt; 64;<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                if (manyColumns) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        // generate each start point and put a slice in<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        IndexIterator iter = tdata.getSliceIterator(null, null, shape);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(null, shape, null); <a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        final int[] pos = iter.getPos();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        while (iter.hasNext()) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                siter.setStart(pos);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                tdata.setSlice(a, siter);<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>                } else {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        // for each value, set slice given by repeats<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        final int[] skip = new int[rank];<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                if (reps[i] == 1) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                        skip[i] = newShape[i];<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                } else {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                        skip[i] = shape[i];<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>                        <a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        Dataset aa = convertToDataset(a);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        IndexIterator ita = aa.getIterator(true);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        final int[] pos = ita.getPos();<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        final int[] sstart = new int[rank];<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        final int extra = rank - pos.length;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                sstart[i] = 0;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(sstart, null, skip);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        while (ita.hasNext()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                for (int i = 0; i &lt; pos.length; i++) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        sstart[i + extra] = pos[i];<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                siter.setStart(sstart);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                tdata.setSlice(aa.getObjectAbs(ita.index), siter);<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>                return tdata;<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>         * Permute copy of dataset's axes so that given order is old order:<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * &lt;pre&gt;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *  axisPerm = (p(0), p(1),...) =&gt; newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         *  such that n(i) = o(p(i)) for all i<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * &lt;/pre&gt;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * running along the old dataset's 2nd dimension and the new 2nd is the old 1st.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * The 3rd dimension is left unchanged.<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * <a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @param a<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @param axes if null or zero length then axes order reversed<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         * @return remapped copy of data<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public static Dataset transpose(final IDataset a, int... axes) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return convertToDataset(a).transpose(axes);<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>        /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         * Swap two axes in dataset<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * @param a<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * @param axis1<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @param axis2<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @return swapped dataset<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        public static Dataset swapAxes(final IDataset a, int axis1, int axis2) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                return convertToDataset(a).swapAxes(axis1, axis2);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @param a<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @return sorted flattened copy of dataset <a name="line.323"></a>
+<span class="sourceLineNo">324</span>         */<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        public static &lt;T extends Dataset&gt; T sort(final T a) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return sort(a, (Integer) null);<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 a<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @param axis to sort along<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @return dataset sorted along axis<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public static &lt;T extends Dataset&gt; T sort(final T a, final Integer axis) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                Dataset s = a.clone();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return (T) s.sort(axis);<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>         * Sort in place given dataset and reorder ancillary datasets too<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a dataset to be sorted<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param b ancillary datasets<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        public static void sort(Dataset a, Dataset... b) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                if (!DTypeUtils.isDTypeNumerical(a.getDType())) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<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>                // gather all datasets as double dataset copies<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                DoubleDataset s = copy(DoubleDataset.class, a);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                int l = b == null ? 0 : b.length;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                DoubleDataset[] t = new DoubleDataset[l];<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                int n = 0;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                for (int i = 0; i &lt; l; i++) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        if (b[i] != null) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                if (!DTypeUtils.isDTypeNumerical(b[i].getDType())) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                t[i] = copy(DoubleDataset.class, b[i]);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                                n++;<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>                double[][] y = new double[n][];<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                for (int i = 0, j = 0; i &lt; l; i++) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        if (t[i] != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                y[j++] = t[i].getData();<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>                MathArrays.sortInPlace(s.getData(), y);<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>                a.setSlice(s);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                for (int i = 0; i &lt; l; i++) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        if (b[i] != null) {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                                b[i].setSlice(t[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>        }<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>         * Concatenate the set of datasets along given axis<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * @param as<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * @param axis<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @return concatenated dataset<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public static Dataset concatenate(final IDataset[] as, final int axis) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                if (as == null || as.length == 0) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        utilsLogger.error("No datasets given");<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        throw new IllegalArgumentException("No datasets given");<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                IDataset a = as[0];<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                if (as.length == 1) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        return convertToDataset(a.clone());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                int[] ashape = a.getShape();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                int at = DTypeUtils.getDType(a);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                int anum = as.length;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                int isize = a.getElementsPerItem();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>                int i = 1;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                for (; i &lt; anum; i++) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        if (at != DTypeUtils.getDType(as[i])) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                utilsLogger.error("Datasets are not of same type");<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                break;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                        }<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        if (!ShapeUtils.areShapesCompatible(ashape, as[i].getShape(), axis)) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                utilsLogger.error("Datasets' shapes are not equal");<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                break;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        }<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        final int is = as[i].getElementsPerItem();<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        if (isize &lt; is)<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                isize = is;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (i &lt; anum) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        utilsLogger.error("Dataset are not compatible");<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        throw new IllegalArgumentException("Datasets are not compatible");<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>                for (i = 1; i &lt; anum; i++) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        ashape[axis] += as[i].getShape()[axis];<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>                @SuppressWarnings("deprecation")<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                Dataset result = DatasetFactory.zeros(isize, ashape, at);<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>                int[] start = new int[ashape.length];<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                int[] stop = ashape;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                stop[axis] = 0;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                for (i = 0; i &lt; anum; i++) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        IDataset b = as[i];<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        int[] bshape = b.getShape();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        stop[axis] += bshape[axis];<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                        result.setSlice(b, start, stop, null);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        start[axis] += bshape[axis];<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 result;<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>         * Split a dataset into equal sections along given axis<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         * @param a<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * @param sections<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @param axis<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param checkEqual makes sure the division is into equal parts<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * @return list of split datasets<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public static List&lt;Dataset&gt; split(final Dataset a, int sections, final int axis, final boolean checkEqual) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                int[] ashape = a.getShapeRef();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                int rank = ashape.length;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                if (axis &gt; rank) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        utilsLogger.error("Axis exceeds rank of dataset");<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        throw new IllegalArgumentException("Axis exceeds rank of dataset");<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                int imax = ashape[axis];<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                if (checkEqual &amp;&amp; (imax%sections) != 0) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        utilsLogger.error("Number of sections does not divide axis into equal parts");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        throw new IllegalArgumentException("Number of sections does not divide axis into equal parts");<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                int n = (imax + sections - 1) / sections;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                int[] indices = new int[sections-1];<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                for (int i = 1; i &lt; sections; i++)<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        indices[i-1] = n*i;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return split(a, indices, axis);<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>         * Split a dataset into parts along given axis<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         * @param a<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param indices<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @param axis<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @return list of split datasets<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @SuppressWarnings("deprecation")<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public static List&lt;Dataset&gt; split(final Dataset a, int[] indices, final int axis) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                final int[] ashape = a.getShapeRef();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                final int rank = ashape.length;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                if (axis &gt; rank) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        utilsLogger.error("Axis exceeds rank of dataset");<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        throw new IllegalArgumentException("Axis exceeds rank of dataset");<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                }<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                final int imax = ashape[axis];<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                final List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>                final int[] nshape = ashape.clone();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                final int is = a.getElementsPerItem();<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>                int oind = 0;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                final int[] start = new int[rank];<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                final int[] stop = new int[rank];<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                final int[] step = new int[rank];<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                for (int i = 0; i &lt; rank; i++) {<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] = ashape[i];<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        step[i] = 1;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                }<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                for (int ind : indices) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        if (ind &gt; imax) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                result.add(DatasetFactory.zeros(is, new int[] {0}, a.getDType()));<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        } else {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                nshape[axis] = ind - oind;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                start[axis] = oind;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                stop[axis] = ind;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                Dataset n = DatasetFactory.zeros(is, nshape, a.getDType());<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                a.fillDataset(n, iter);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                result.add(n);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                oind = ind;<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><a name="line.514"></a>
+<span class="sourceLineNo">515</span>                if (imax &gt; oind) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        nshape[axis] = imax - oind;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        start[axis] = oind;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        stop[axis] = imax;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        Dataset n = DatasetFactory.zeros(is, nshape, a.getDType());<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        a.fillDataset(n, iter);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        result.add(n);<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>                return result;<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>         * Constructs a dataset which has its elements along an axis replicated from<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         * the original dataset by the number of times given in the repeats array.<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         * <a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * By default, axis=-1 implies using a flattened version of the input dataset <a name="line.533"></a>
+<span class="sourceLineNo">534</span>         *<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * @param a<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param repeats <a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @param axis<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         * @return dataset<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         */<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        public static &lt;T extends Dataset&gt; T repeat(T a, int[] repeats, int axis) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                Serializable buf = a.getBuffer();<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                int[] shape = a.getShape();<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                int rank = shape.length;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                final int is = a.getElementsPerItem();<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>                if (axis &gt;= rank) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        utilsLogger.warn("Axis value is out of bounds");<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                        throw new IllegalArgumentException("Axis value is out of bounds");<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>                int alen;<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                if (axis &lt; 0) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        alen = a.getSize();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        axis = 0;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        rank = 1;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                        shape[0] = alen;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                } else {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                        alen = shape[axis];<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                int rlen = repeats.length;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                if (rlen != 1 &amp;&amp; rlen != alen) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                        utilsLogger.warn("Repeats array should have length of 1 or match chosen axis");<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        throw new IllegalArgumentException("Repeats array should have length of 1 or match chosen axis");<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>                for (int i = 0; i &lt; rlen; i++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        if (repeats[i] &lt; 0) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                utilsLogger.warn("Negative repeat value is not allowed");<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                throw new IllegalArgumentException("Negative repeat value is not allowed");<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><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                int[] newShape = new int[rank];<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                for (int i = 0; i &lt; rank; i ++)<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        newShape[i] = shape[i];<a name="line.575"></a>
+<span class="sourceLineNo">576</span><a name="line.576"></a>
+<span class="sourceLineNo">577</span>                // do single repeat separately<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                if (repeats.length == 1) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        newShape[axis] *= repeats[0];<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                } else {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        int nlen = 0;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        for (int i = 0; i &lt; alen; i++) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                nlen += repeats[i];<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        newShape[axis] = nlen;<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>                @SuppressWarnings("deprecation")<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                Dataset rdata = DatasetFactory.zeros(is, newShape, a.getDType());<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                Serializable nbuf = rdata.getBuffer();<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>                int csize = is; // chunk size<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                for (int i = axis+1; i &lt; rank; i++) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        csize *= newShape[i];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                int nout = 1;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                for (int i = 0; i &lt; axis; i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                        nout *= newShape[i];<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>                int oi = 0;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                int ni = 0;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                if (rlen == 1) { // do single repeat separately<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        for (int k = 0; k &lt; repeats[0]; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                                ni += csize;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                        }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                        oi += csize;<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>                } else {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                        for (int k = 0; k &lt; repeats[j]; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                ni += csize;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                        }<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                        oi += csize;<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>                }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>                return (T) rdata;<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>         * Resize a dataset <a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @param a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         * @param shape<a name="line.631"></a>
+<span class="sourceLineNo">632</span>         * @return new dataset with new shape and items that are truncated or repeated, as necessary<a name="line.632"></a>
+<span class="sourceLineNo">633</span>         */<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        public static &lt;T extends Dataset&gt; T resize(final T a, final int... shape) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int size = a.getSize();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                @SuppressWarnings("deprecation")<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                Dataset rdata = DatasetFactory.zeros(a.getElementsPerItem(), shape, a.getDType());<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                IndexIterator it = rdata.getIterator();<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                while (it.hasNext()) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        rdata.setObjectAbs(it.index, a.getObjectAbs(it.index % size));<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>                return (T) rdata;<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>        /**<a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * Copy and cast a dataset<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         * <a name="line.648"></a>
+<span class="sourceLineNo">649</span>         * @param d<a name="line.649"></a>
+<span class="sourceLineNo">650</span>         *            The dataset to be copied<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         * @param dtype dataset type<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * @return copied dataset of given type<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         */<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        public static Dataset copy(final IDataset d, final int dtype) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                Dataset a = convertToDataset(d);<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>                Dataset c = null;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                try {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        // copy across the data<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        switch (dtype) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        case Dataset.STRING:<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                c = new StringDataset(a);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                break;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        case Dataset.BOOL:<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                c = new BooleanDataset(a);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                break;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        case Dataset.INT8:<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                if (a instanceof CompoundDataset)<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                        c = new CompoundByteDataset(a);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                else<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        c = new ByteDataset(a);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                break;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        case Dataset.INT16:<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                if (a instanceof CompoundDataset)<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        c = new CompoundShortDataset(a);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                else<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                        c = new ShortDataset(a);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                break;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        case Dataset.INT32:<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                if (a instanceof CompoundDataset)<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        c = new CompoundIntegerDataset(a);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                else<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                        c = new IntegerDataset(a);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                break;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        case Dataset.INT64:<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                if (a instanceof CompoundDataset)<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                        c = new CompoundLongDataset(a);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                else<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        c = new LongDataset(a);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                break;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        case Dataset.ARRAYINT8:<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                if (a instanceof CompoundDataset)<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        c = new CompoundByteDataset((CompoundDataset) a);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                else<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                        c = new CompoundByteDataset(a);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                break;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        case Dataset.ARRAYINT16:<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                if (a instanceof CompoundDataset)<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                        c = new CompoundShortDataset((CompoundDataset) a);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                else<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                        c = new CompoundShortDataset(a);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                break;<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        case Dataset.ARRAYINT32:<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                if (a instanceof CompoundDataset)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                        c = new CompoundIntegerDataset((CompoundDataset) a);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                else<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        c = new CompoundIntegerDataset(a);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                break;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        case Dataset.ARRAYINT64:<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                if (a instanceof CompoundDataset)<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                        c = new CompoundLongDataset((CompoundDataset) a);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                else<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        c = new CompoundLongDataset(a);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                break;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        case Dataset.FLOAT32:<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                c = new FloatDataset(a);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                break;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        case Dataset.FLOAT64:<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                c = new DoubleDataset(a);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                break;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        case Dataset.ARRAYFLOAT32:<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 CompoundFloatDataset((CompoundDataset) a);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                else<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        c = new CompoundFloatDataset(a);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                break;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        case Dataset.ARRAYFLOAT64:<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 CompoundDoubleDataset((CompoundDataset) a);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                else<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                        c = new CompoundDoubleDataset(a);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                break;<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        case Dataset.COMPLEX64:<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                c = new ComplexFloatDataset(a);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                break;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        case Dataset.COMPLEX128:<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                c = new ComplexDoubleDataset(a);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                break;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        case Dataset.RGB:<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 = RGBDataset.createFromCompoundDataset((CompoundDataset) a);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                else<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        c = new RGBDataset(a);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                break;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        default:<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                break;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                } catch (OutOfMemoryError e) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<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 c;<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>        /**<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         * Copy and cast a dataset<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * <a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * @param clazz dataset class<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @param d<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         *            The dataset to be copied<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * @return copied dataset of given type<a name="line.763"></a>
+<span class="sourceLineNo">764</span>         */<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        public static &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                return (T) copy(d, DTypeUtils.getDType(clazz));<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>         * Cast a dataset<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * <a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param d<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         *            The dataset to be cast.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param dtype dataset type<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @return dataset of given type (or same dataset if already of the right type)<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         */<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public static Dataset cast(final IDataset d, final int dtype) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                Dataset a = convertToDataset(d);<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>                if (a.getDType() == dtype) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        return a;<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                }<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                return copy(d, dtype);<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>         * Cast a dataset<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * <a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param clazz dataset class<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * @param d<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         *            The dataset to be cast.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         * @return dataset of given type (or same dataset if already of the right type)<a name="line.793"></a>
+<span class="sourceLineNo">794</span>         */<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public static &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return (T) cast(d, DTypeUtils.getDType(clazz));<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>         * Cast a dataset<a name="line.800"></a>
+<span class="sourceLineNo">801</span>         * <a name="line.801"></a>
+<span class="sourceLineNo">802</span>         * @param d<a name="line.802"></a>
+<span class="sourceLineNo">803</span>         *            The dataset to be cast.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>         * @param repeat repeat elements over item<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param dtype dataset type<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @param isize item size<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public static Dataset cast(final IDataset d, final boolean repeat, final int dtype, final int isize) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                Dataset a = convertToDataset(d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                if (a.getDType() == dtype &amp;&amp; a.getElementsPerItem() == isize) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        return a;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                if (isize &lt;= 0) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        utilsLogger.error("Item size is invalid (&gt;0)");<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        throw new IllegalArgumentException("Item size is invalid (&gt;0)");<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                if (isize &gt; 1 &amp;&amp; dtype &lt;= Dataset.FLOAT64) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        utilsLogger.error("Item size is inconsistent with dataset type");<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        throw new IllegalArgumentException("Item size is inconsistent with dataset type");<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>                Dataset c = null;<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                try {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        // copy across the data<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        switch (dtype) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                c = new BooleanDataset(a);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                break;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        case Dataset.INT8:<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                c = new ByteDataset(a);<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                break;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                        case Dataset.INT16:<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                c = new ShortDataset(a);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                break;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        case Dataset.INT32:<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                c = new IntegerDataset(a);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        case Dataset.INT64:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                c = new LongDataset(a);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        case Dataset.ARRAYINT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                c = new CompoundByteDataset(isize, repeat, a);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                break;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        case Dataset.ARRAYINT16:<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                c = new CompoundShortDataset(isize, repeat, a);<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                break;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        case Dataset.ARRAYINT32:<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                c = new CompoundIntegerDataset(isize, repeat, a);<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                break;<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        case Dataset.ARRAYINT64:<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                c = new CompoundLongDataset(isize, repeat, a);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                break;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        case Dataset.FLOAT32:<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                c = new FloatDataset(a);<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        case Dataset.FLOAT64:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                c = new DoubleDataset(a);<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                break;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        case Dataset.ARRAYFLOAT32:<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                c = new CompoundFloatDataset(isize, repeat, a);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                break;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                        case Dataset.ARRAYFLOAT64:<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                c = new CompoundDoubleDataset(isize, repeat, a);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                break;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        case Dataset.COMPLEX64:<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                c = new ComplexFloatDataset(a);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                break;<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        case Dataset.COMPLEX128:<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                c = new ComplexDoubleDataset(a);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                        default:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                break;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        }<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                } catch (OutOfMemoryError e) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<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>                return c;<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>        /**<a name="line.885"></a>
+<span class="sourceLineNo">886</span>         * Cast array of datasets to a compound dataset<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * <a name="line.887"></a>
+<span class="sourceLineNo">888</span>         * @param a<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         *            The datasets to be cast.<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         */<a name="line.890"></a>
+<span class="sourceLineNo">891</span>        public static CompoundDataset cast(final Dataset[] a, final int dtype) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                CompoundDataset c = null;<a name="line.892"></a>
+<span class="sourceLineNo">893</span><a name="line.893"></a>
+<span class="sourceLineNo">894</span>                switch (dtype) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                case Dataset.INT8:<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                case Dataset.ARRAYINT8:<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        c = new CompoundByteDataset(a);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        break;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                case Dataset.INT16:<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(a);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.INT32:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                case Dataset.ARRAYINT32:<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        c = new CompoundIntegerDataset(a);<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        break;<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                case Dataset.INT64:<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                case Dataset.ARRAYINT64:<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        c = new CompoundLongDataset(a);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        break;<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                case Dataset.FLOAT32:<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                case Dataset.ARRAYFLOAT32:<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        c = new CompoundFloatDataset(a);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        break;<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                case Dataset.FLOAT64:<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                case Dataset.ARRAYFLOAT64:<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        c = new CompoundDoubleDataset(a);<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        break;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                case Dataset.COMPLEX64:<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        if (a.length != 2) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        c = new ComplexFloatDataset(a[0], a[1]);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        break;<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                case Dataset.COMPLEX128:<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        if (a.length != 2) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        c = new ComplexDoubleDataset(a[0], a[1]);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        break;<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                default:<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        utilsLogger.error("Dataset of unsupported type!");<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        break;<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>         * Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * of its content<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * @return unsigned dataset or original if it is not an integer dataset<a name="line.943"></a>
+<span class="sourceLineNo">944</span>         */<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        public static Dataset makeUnsigned(IDataset a) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                Dataset d = convertToDataset(a);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                int dtype = d.getDType();<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                switch (dtype) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                case Dataset.INT32:<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        d = new LongDataset(d);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        unwrapUnsigned(d, 32);<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>                        d = new IntegerDataset(d);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        unwrapUnsigned(d, 16);<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        break;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                case Dataset.INT8:<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        d = new ShortDataset(d);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        unwrapUnsigned(d, 8);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        break;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                case Dataset.ARRAYINT32:<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        d = new CompoundLongDataset(d);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        unwrapUnsigned(d, 32);<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        break;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                case Dataset.ARRAYINT16:<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        d = new CompoundIntegerDataset(d);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        unwrapUnsigned(d, 16);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        break;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                case Dataset.ARRAYINT8:<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        d = new CompoundShortDataset(d);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        unwrapUnsigned(d, 8);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return d;<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>         * Unwrap dataset elements so that all elements are unsigned<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         * @param a dataset<a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * @param bitWidth width of original primitive in bits<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         */<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        public static void unwrapUnsigned(Dataset a, final int bitWidth) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                final int dtype = a.getDType();<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                final double dv = 1L &lt;&lt; bitWidth;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                final int isize = a.getElementsPerItem();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                IndexIterator it = a.getIterator();<a name="line.986"></a>
+<span class="sourceLineNo">987</span><a name="line.987"></a>
+<span class="sourceLineNo">988</span>                switch (dtype) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                case Dataset.BOOL:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        break;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                case Dataset.INT8:<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                case Dataset.INT16:<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        ShortDataset sds = (ShortDataset) a;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        final short soffset = (short) dv;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                        while (it.hasNext()) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                final short x = sds.getAbs(it.index);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                if (x &lt; 0)<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        sds.setAbs(it.index, (short) (x + soffset));<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                case Dataset.INT32:<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        IntegerDataset ids = (IntegerDataset) a;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        final int ioffset = (int) dv;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                final int x = ids.getAbs(it.index);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                if (x &lt; 0)<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                        ids.setAbs(it.index, x + ioffset);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        break;<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                case Dataset.INT64:<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        LongDataset lds = (LongDataset) a;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final long loffset = (long) dv;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        while (it.hasNext()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                final long x = lds.getAbs(it.index);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                if (x &lt; 0)<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        lds.setAbs(it.index, x + loffset);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        break;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                case Dataset.FLOAT32:<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        FloatDataset fds = (FloatDataset) a;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        final float foffset = (float) dv;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        while (it.hasNext()) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                final float x = fds.getAbs(it.index);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                if (x &lt; 0)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                        fds.setAbs(it.index, x + foffset);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                        break;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                case Dataset.FLOAT64:<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        DoubleDataset dds = (DoubleDataset) a;<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        final double doffset = dv;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        while (it.hasNext()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                final double x = dds.getAbs(it.index);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                if (x &lt; 0)<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        dds.setAbs(it.index, x + doffset);<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        break;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                case Dataset.ARRAYINT8:<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        break;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                case Dataset.ARRAYINT16:<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        CompoundShortDataset csds = (CompoundShortDataset) a;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        final short csoffset = (short) dv;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        final short[] csa = new short[isize];<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                csds.getAbs(it.index, csa);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                boolean dirty = false;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        short x = csa[i];<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        if (x &lt; 0) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                                csa[i] = (short) (x + csoffset);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                                dirty = true;<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>                                if (dirty)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                        csds.setAbs(it.index, csa);<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.ARRAYINT32:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        CompoundIntegerDataset cids = (CompoundIntegerDataset) a;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        final int cioffset = (int) dv;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        final int[] cia = new int[isize];<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                cids.getAbs(it.index, cia);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                boolean dirty = false;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                        int x = cia[i];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                        if (x &lt; 0) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                                cia[i] = x + cioffset;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                                dirty = true;<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>                                if (dirty)<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        cids.setAbs(it.index, cia);<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.ARRAYINT64:<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        CompoundLongDataset clds = (CompoundLongDataset) a;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        final long cloffset = (long) dv;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        final long[] cla = new long[isize];<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        while (it.hasNext()) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                clds.getAbs(it.index, cla);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                boolean dirty = false;<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        long x = cla[i];<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                        if (x &lt; 0) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                cla[i] = x + cloffset;<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                                dirty = true;<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>                                if (dirty)<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        clds.setAbs(it.index, cla);<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>                default:<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        utilsLogger.error("Dataset of unsupported type for this method");<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        break;<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>         * @param rows<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @param cols<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * @param offset<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * @param dtype<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * @return a new 2d dataset of given shape and type, filled with ones on the (offset) diagonal<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         */<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        public static Dataset eye(final int rows, final int cols, final int offset, final int dtype) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                int[] shape = new int[] {rows, cols};<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                @SuppressWarnings("deprecation")<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                Dataset a = DatasetFactory.zeros(shape, dtype);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span><a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                int[] pos = new int[] {0, offset};<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                while (pos[1] &lt; 0) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        pos[0]++;<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        pos[1]++;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                while (pos[0] &lt; rows &amp;&amp; pos[1] &lt; cols) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        a.set(1, pos);<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        pos[0]++;<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        pos[1]++;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span><a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                return a;<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>         * Create a (off-)diagonal matrix from items in dataset<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         * @param a<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @param offset<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         * @return diagonal matrix<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>         */<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>        @SuppressWarnings("deprecation")<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>        public static &lt;T extends Dataset&gt; T diag(final T a, final int offset) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                final int dtype = a.getDType();<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final int rank = a.getRank();<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                final int is = a.getElementsPerItem();<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span><a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                if (rank == 0 || rank &gt; 2) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        utilsLogger.error("Rank of dataset should be one or two");<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        throw new IllegalArgumentException("Rank of dataset should be one or two");<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>                Dataset result;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                final int[] shape = a.getShapeRef();<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                if (rank == 1) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        int side = shape[0] + Math.abs(offset);<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                        int[] pos = new int[] {side, side};<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        result = DatasetFactory.zeros(is, pos, dtype);<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        if (offset &gt;= 0) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                pos[0] = 0;<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                pos[1] = offset;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        } else {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                pos[0] = -offset;<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                pos[1] = 0;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        int i = 0;<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                        while (pos[0] &lt; side &amp;&amp; pos[1] &lt; side) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                result.set(a.getObject(i++), pos);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                pos[0]++;<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                pos[1]++;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                } else {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        int side = offset &gt;= 0 ? Math.min(shape[0], shape[1]-offset) : Math.min(shape[0]+offset, shape[1]);<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        if (side &lt; 0)<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                side = 0;<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        result = DatasetFactory.zeros(is, new int[] {side}, dtype);<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                        if (side &gt; 0) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                int[] pos = offset &gt;= 0 ? new int[] { 0, offset } : new int[] { -offset, 0 };<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                int i = 0;<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (pos[0] &lt; shape[0] &amp;&amp; pos[1] &lt; shape[1]) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        result.set(a.getObject(pos), i++);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        pos[0]++;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        pos[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>                }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                return (T) result;<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>         * Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * convert to our dataset implementation. If a slice is necessary, this may cause resource<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * problems when used on large datasets and throw runtime exceptions<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @param lazy can be null<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @return Converted dataset or null<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * @throws DatasetException<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         */<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        public static Dataset sliceAndConvertLazyDataset(ILazyDataset lazy) throws DatasetException {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                if (lazy == null)<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        return null;<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span><a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                IDataset data = lazy instanceof IDataset ? (IDataset) lazy.getSliceView() : lazy.getSlice();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span><a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                return convertToDataset(data);<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>         * Convert (if necessary) a dataset obeying the interface to our implementation<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * @param data can be null<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @return Converted dataset or null<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         */<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public static Dataset convertToDataset(IDataset data) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                if (data == null)<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        return null;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                if (data instanceof Dataset) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        return (Dataset) data;<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>                int dtype = DTypeUtils.getDType(data);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                final int isize = data.getElementsPerItem();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                if (isize &lt;= 0) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        throw new IllegalArgumentException("Datasets with " + isize + " elements per item not supported");<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>                @SuppressWarnings("deprecation")<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                final Dataset result = DatasetFactory.zeros(isize, data.getShape(), dtype);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                result.setName(data.getName());<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                final IndexIterator it = result.getIterator(true);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                final int[] pos = it.getPos();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                switch (dtype) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                case Dataset.BOOL:<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        while (it.hasNext()) {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                result.setObjectAbs(it.index, data.getBoolean(pos));<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        break;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                case Dataset.INT8:<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        while (it.hasNext()) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                result.setObjectAbs(it.index, data.getByte(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.INT16:<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        while (it.hasNext()) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                result.setObjectAbs(it.index, data.getShort(pos));<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        break;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                case Dataset.INT32:<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                result.setObjectAbs(it.index, data.getInt(pos));<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        break;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                case Dataset.INT64:<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        while (it.hasNext()) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                result.setObjectAbs(it.index, data.getLong(pos));<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                        }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        break;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                case Dataset.FLOAT32:<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                        while (it.hasNext()) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                result.setObjectAbs(it.index, data.getFloat(pos));<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        }<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                        break;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                case Dataset.FLOAT64:<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        while (it.hasNext()) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                result.setObjectAbs(it.index, data.getDouble(pos));<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        }<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                        break;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                default:<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        while (it.hasNext()) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                result.setObjectAbs(it.index, data.getObject(pos));<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>                }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                result.setErrors(data.getErrors());<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                return result;<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>        }<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>         * Create a compound dataset from given datasets<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>         * @param datasets<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>         * @return compound dataset or null if none given<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>         */<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        public static CompoundDataset createCompoundDataset(final Dataset... datasets) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                if (datasets == null || datasets.length == 0)<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        return null;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span><a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                return createCompoundDataset(datasets[0].getDType(), datasets);<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>         * Create a compound dataset from given datasets<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * @param dtype<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * @param datasets<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * @return compound dataset or null if none given<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         */<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>        public static CompoundDataset createCompoundDataset(final int dtype, final Dataset... datasets) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                if (datasets == null || datasets.length == 0)<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        return null;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span><a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                switch (dtype) {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                case Dataset.INT8:<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                case Dataset.ARRAYINT8:<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        return new CompoundByteDataset(datasets);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                case Dataset.INT16:<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                case Dataset.ARRAYINT16:<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        return new CompoundShortDataset(datasets);<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                case Dataset.INT32:<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                case Dataset.ARRAYINT32:<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        return new CompoundIntegerDataset(datasets);<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                case Dataset.INT64:<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                case Dataset.ARRAYINT64:<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                        return new CompoundLongDataset(datasets);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                case Dataset.FLOAT32:<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                case Dataset.ARRAYFLOAT32:<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        return new CompoundFloatDataset(datasets);<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                case Dataset.FLOAT64:<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                case Dataset.ARRAYFLOAT64:<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        return new CompoundDoubleDataset(datasets);<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                case Dataset.COMPLEX64:<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                case Dataset.COMPLEX128:<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        if (datasets.length &gt; 2) {<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                utilsLogger.error("At most two datasets are allowed");<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                throw new IllegalArgumentException("At most two datasets are allowed");<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        } else if (datasets.length == 2) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0], datasets[1]) : new ComplexDoubleDataset(datasets[0], datasets[1]);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0]) : new ComplexDoubleDataset(datasets[0]);<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.RGB:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        if (datasets.length == 1) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                return new RGBDataset(datasets[0]);<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        } else if (datasets.length == 3) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                return new RGBDataset(datasets[0], datasets[1], datasets[2]);<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                        } else {<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                utilsLogger.error("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                throw new IllegalArgumentException("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                        }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                default:<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new UnsupportedOperationException("Dataset type not supported");<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><a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>        /**<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>         * Create a compound dataset from given datasets<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>         * @param clazz dataset class<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>         * @param datasets<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>         * @return compound dataset or null if none given<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>         */<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>        public static &lt;T extends CompoundDataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, final Dataset... datasets) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), datasets);<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>        /**<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * Create a compound dataset from given dataset<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @param dataset<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         * @param itemSize<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>         * @return compound dataset<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>         */<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        public static CompoundDataset createCompoundDataset(final Dataset dataset, final int itemSize) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                int[] shape = dataset.getShapeRef();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                int[] nshape = shape;<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                if (shape != null &amp;&amp; itemSize &gt; 1) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                        int size = ShapeUtils.calcSize(shape);<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        if (size % itemSize != 0) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                throw new IllegalArgumentException("Input dataset has number of items that is not a multiple of itemSize");<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                        int d = shape.length;<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                        int l = 1;<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                        while (--d &gt;= 0) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                l *= shape[d];<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                if (l % itemSize == 0) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                        break;<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>                        assert d &gt;= 0;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        nshape = new int[d + 1];<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        for (int i = 0; i &lt; d; i++) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                nshape[i] = shape[i];<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        nshape[d] = l / itemSize;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                switch (dataset.getDType()) {<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                case Dataset.INT8:<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                        return new CompoundByteDataset(itemSize, (byte[]) dataset.getBuffer(), nshape);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                case Dataset.INT16:<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                        return new CompoundShortDataset(itemSize, (short[]) dataset.getBuffer(), nshape);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                case Dataset.INT32:<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                        return new CompoundIntegerDataset(itemSize, (int[]) dataset.getBuffer(), nshape);<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                case Dataset.INT64:<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        return new CompoundLongDataset(itemSize, (long[]) dataset.getBuffer(), nshape);<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                case Dataset.FLOAT32:<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        return new CompoundFloatDataset(itemSize, (float[]) dataset.getBuffer(), nshape);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                case Dataset.FLOAT64:<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        return new CompoundDoubleDataset(itemSize, (double[]) dataset.getBuffer(), nshape);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                default:<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                        throw new UnsupportedOperationException("Dataset type not supported");<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><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>         * Create a compound dataset by using last axis as elements of an item<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>         * @param a<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>         * @param shareData if true, then share data<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @return compound dataset<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         */<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>        public static CompoundDataset createCompoundDatasetFromLastAxis(final Dataset a, final boolean shareData) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                switch (a.getDType()) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                case Dataset.INT8:<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                        return CompoundByteDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                case Dataset.INT16:<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                        return CompoundShortDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                case Dataset.INT32:<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        return CompoundIntegerDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                case Dataset.INT64:<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                        return CompoundLongDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                case Dataset.FLOAT32:<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                        return CompoundFloatDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                case Dataset.FLOAT64:<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                        return CompoundDoubleDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                default:<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        throw new UnsupportedOperationException("Dataset type not supported");<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>        /**<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>         * Create a dataset from a compound dataset by using elements of an item as last axis<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>         * &lt;p&gt;<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * In the case where the number of elements is one, the last axis is squeezed out.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         * @param a<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * @param shareData if true, then share data<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * @return non-compound dataset<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         */<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        public static Dataset createDatasetFromCompoundDataset(final CompoundDataset a, final boolean shareData) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                return a.asNonCompoundDataset(shareData);<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>        }<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span><a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>        /**<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * Create a copy that has been coerced to an appropriate dataset type<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * depending on the input object's class<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         *<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * @param a<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * @param obj<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * @return coerced copy of dataset<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         */<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>        public static Dataset coerce(Dataset a, Object obj) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                final int dt = a.getDType();<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                final int ot = DTypeUtils.getDTypeFromClass(obj.getClass());<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return cast(a.clone(), DTypeUtils.getBestDType(dt, ot));<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>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * @param a dataset<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * @return normalised dataset<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         */<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>        public static Dataset norm(Dataset a) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                double amin = a.min().doubleValue();<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                double aptp = a.max().doubleValue() - amin;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                Dataset temp = Maths.subtract(a, amin);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                temp.idivide(aptp);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                return temp;<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>         * Function that returns a normalised compound dataset which is bounded between 0 and 1. There<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>         * are (at least) two ways to normalise a compound dataset: per element - extrema for each element<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>         * in a compound item is used, i.e. many min/max pairs; over all elements - extrema for all elements<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>         * is used, i.e. one min/max pair.<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>         * @param a dataset<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>         * @param overAllElements if true, then normalise over all elements in each item<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>         * @return normalised dataset<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>         */<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>        public static CompoundDataset norm(CompoundDataset a, boolean overAllElements) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                double[] amin = a.minItem();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                double[] amax = a.maxItem();<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                final int is = a.getElementsPerItem();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                Dataset result;<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span><a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                if (overAllElements) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        Arrays.sort(amin);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        Arrays.sort(amax);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        double aptp = amax[0] - amin[0];<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        <a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        result = Maths.subtract(a, amin[0]);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                        result.idivide(aptp);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                } else {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                        double[] aptp = new double[is];<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                aptp[j] = amax[j] - amin[j];<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                        }<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                        result = Maths.subtract(a, amin);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        result.idivide(aptp);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                return (CompoundDataset) result;<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>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * and has been distributed on a log10 scale<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * @param a dataset<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * @return normalised dataset<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         */<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        public static Dataset lognorm(Dataset a) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                double amin = a.min().doubleValue();<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                double aptp = Math.log10(a.max().doubleValue() - amin + 1.);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                temp = Maths.log10(temp);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                temp = Maths.divide(temp, aptp);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return temp;<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>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * and has been distributed on a natural log scale<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * @param a dataset<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         * @return normalised dataset<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>         */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>        public static Dataset lnnorm(Dataset a) {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                double amin = a.min().doubleValue();<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                double aptp = Math.log(a.max().doubleValue() - amin + 1.);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                temp = Maths.log(temp);<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                temp = Maths.divide(temp, aptp);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                return temp;<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>         * Construct a list of datasets where each represents a coordinate varying over the hypergrid<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>         * formed by the input list of axes<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>         * <a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>         * @param axes an array of 1D datasets representing axes<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>         * @return a list of coordinate datasets<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>         */<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>        public static List&lt;Dataset&gt; meshGrid(final Dataset... axes) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                int rank = axes.length;<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span><a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                if (rank &lt; 2) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                        utilsLogger.error("Two or more axes datasets are required");<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        throw new IllegalArgumentException("Two or more axes datasets are required");<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>                int[] nshape = new int[rank];<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span><a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                        Dataset axis = axes[i];<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                        if (axis.getRank() != 1) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                utilsLogger.error("Given axis is not 1D");<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                throw new IllegalArgumentException("Given axis is not 1D");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                        }<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                        nshape[i] = axis.getSize();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span><a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                        Dataset axis = axes[i];<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        @SuppressWarnings("deprecation")<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        Dataset coord = DatasetFactory.zeros(nshape, axis.getDType());<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        result.add(coord);<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span><a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                        final int alen = axis.getSize();<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                final Object obj = axis.getObjectAbs(j);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                PositionIterator pi = coord.getPositionIterator(i);<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                final int[] pos = pi.getPos();<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span><a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                pos[i] = j;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                while (pi.hasNext()) {<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        coord.set(obj, pos);<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><a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                return result;<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>        /**<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>         * Generate an index dataset for given dataset where sub-datasets contain index values<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>         *<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>         * @return an index dataset<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>         */<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>        public static IntegerDataset indices(int... shape) {<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                // now create another dataset to plot against<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                final int rank = shape.length;<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                int[] nshape = new int[rank+1];<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                nshape[0] = rank;<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                        nshape[i+1] = shape[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>                IntegerDataset index = new IntegerDataset(nshape);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                if (rank == 1) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                        final int alen = shape[0];<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        int[] pos = new int[2];<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                pos[1] = j;<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                index.set(j, pos);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                        }<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                } else {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                        for (int i = 1; i &lt;= rank; i++) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                final int alen = nshape[i];<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                for (int j = 0; j &lt; alen; j++) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                        PositionIterator pi = index.getPositionIterator(0, i);<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        final int[] pos = pi.getPos();<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        pos[0] = i-1;<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                        pos[i] = j;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                        while (pi.hasNext()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                index.set(j, pos);<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>                }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                return index;<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>        /**<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>         * Get the centroid value of a dataset, this function works out the centroid in every direction<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>         * <a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>         * @param a<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>         *            the dataset to be analysed<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>         * @param bases the optional array of base coordinates to use as weights.<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>         * This defaults to the mid-point of indices<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>         * @return a double array containing the centroid for each dimension<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>         */<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>        public static double[] centroid(Dataset a, Dataset... bases) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                int rank = a.getRank();<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                if (bases.length &gt; 0 &amp;&amp; bases.length != rank) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                        throw new IllegalArgumentException("Number of bases must be zero or match rank of dataset");<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                <a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                int[] shape = a.getShapeRef();<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                if (bases.length == rank) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                Dataset b = bases[i];<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                if (b.getRank() != 1 &amp;&amp; b.getSize() != shape[i]) {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                        throw new IllegalArgumentException("A base does not have shape to match given dataset");<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                }<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><a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                double[] dc = new double[rank];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                if (rank == 0)<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                        return dc;<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span><a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                final PositionIterator iter = new PositionIterator(shape);<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                final int[] pos = iter.getPos();<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                double tsum = 0.0;<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                while (iter.hasNext()) {<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        double val = a.getDouble(pos);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        tsum += val;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                        for (int d = 0; d &lt; rank; d++) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                Dataset b = bases.length == 0 ? null : bases[d];<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                if (b == null) {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                        dc[d] += (pos[d] + 0.5) * val;<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                } else {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        dc[d] += b.getElementDoubleAbs(pos[d]) * val;<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>                }<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span><a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                for (int d = 0; d &lt; rank; d++) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        dc[d] /= tsum;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                return dc;<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>         * Find linearly-interpolated crossing points where the given dataset crosses the given value<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>         * <a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>         * @param d<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>         * @param value<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>         * @return list of interpolated indices<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>         */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        public static List&lt;Double&gt; crossings(Dataset d, double value) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                if (d.getRank() != 1) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                        utilsLogger.error("Only 1d datasets supported");<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        throw new UnsupportedOperationException("Only 1d datasets supported");<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                }<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span><a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                // run through all pairs of points on the line and see if value lies within<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                IndexIterator it = d.getIterator();<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                double y1, y2;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span><a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                y2 = it.hasNext() ? y2 = d.getElementDoubleAbs(it.index) : 0;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                double x = 1;<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                while (it.hasNext()) {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                        y1 = y2;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                        y2 = d.getElementDoubleAbs(it.index);<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                        // check if value lies within pair [y1, y2]<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                        if ((y1 &lt;= value &amp;&amp; value &lt; y2) || (y1 &gt; value &amp;&amp; y2 &lt;= value)) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                final double f = (value - y2)/(y2 - y1); // negative distance from right to left<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                results.add(x + f);<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                        x++;<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                if (y2 == value) { // add end point of it intersects<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                        results.add(x);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span><a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                return results;<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>        /**<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>         * Find x values of all the crossing points of the dataset with the given y value<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>         * <a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>         * @param xAxis<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>         *            Dataset of the X axis that needs to be looked at<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>         * @param yAxis<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>         *            Dataset of the Y axis that needs to be looked at<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>         * @param yValue<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>         *            The y value the X values are required for<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>         * @return An list of doubles containing all the X coordinates of where the line crosses<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>         */<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span><a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                List&lt;Double&gt; indices = crossings(yAxis, yValue);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span><a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                for (double xi : indices) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        results.add(Maths.interpolate(xAxis, xi));<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                return results;<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>         * Function that uses the crossings function but prunes the result, so that multiple crossings within a<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>         * certain proportion of the overall range of the x values<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>         * <a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>         * @param xAxis<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>         *            Dataset of the X axis<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>         * @param yAxis<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>         *            Dataset of the Y axis<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>         * @param yValue<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>         *            The y value the x values are required for<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>         * @param xRangeProportion<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>         *            The proportion of the overall x spread used to prune result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>         * @return A list containing all the unique crossing points<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>         */<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue, double xRangeProportion) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                // get the values found<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                List&lt;Double&gt; vals = crossings(xAxis, yAxis, yValue);<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                // use the proportion to calculate the error spacing<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                double error = xRangeProportion * xAxis.peakToPeak().doubleValue();<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                int i = 0;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                // now go through and check for groups of three crossings which are all<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                // within the boundaries<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                while (i &lt; vals.size() - 3) {<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        double v1 = Math.abs(vals.get(i) - vals.get(i + 2));<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                        if (v1 &lt; error) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                // these 3 points should be treated as one<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                // make the first point equal to the average of them all<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                vals.set(i + 2, ((vals.get(i) + vals.get(i + 1) + vals.get(i + 2)) / 3.0));<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                // remove the other offending points<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                vals.remove(i);<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                vals.remove(i);<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                        } else {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                i++;<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>                // once the thinning process has been completed, return the pruned list<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                return vals;<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>        // recursive function<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        private static void setRow(Object row, Dataset a, int... pos) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                final int l = Array.getLength(row);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                final int rank = pos.length;<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                final int[] npos = Arrays.copyOf(pos, rank+1);<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                Object r;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                if (rank+1 &lt; a.getRank()) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                npos[rank] = i;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                r = Array.get(row, i);<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                setRow(r, a, npos);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                        }<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                } else {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                npos[rank] = i;<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                r = a.getObject(npos);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                Array.set(row, i, r);<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>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        /**<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>         * Create Java array (of arrays) from dataset<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>         * @param a dataset<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>         * @return Java array (of arrays...)<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>         */<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>        public static Object createJavaArray(Dataset a) {<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                if (a.getElementsPerItem() &gt; 1) {<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                        a = createDatasetFromCompoundDataset((CompoundDataset) a, true);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                Object matrix;<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span><a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                switch (a.getDType()) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                case Dataset.BOOL:<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                        matrix = Array.newInstance(boolean.class, a.getShape());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                        break;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                case Dataset.INT8:<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                        matrix = Array.newInstance(byte.class, a.getShape());<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                        break;<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                case Dataset.INT16:<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        matrix = Array.newInstance(short.class, a.getShape());<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        break;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                case Dataset.INT32:<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        matrix = Array.newInstance(int.class, a.getShape());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                        break;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                case Dataset.INT64:<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                        matrix = Array.newInstance(long.class, a.getShape());<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        break;<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                case Dataset.FLOAT32:<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                        matrix = Array.newInstance(float.class, a.getShape());<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        break;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                case Dataset.FLOAT64:<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                        matrix = Array.newInstance(double.class, a.getShape());<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        break;<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                default:<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                        utilsLogger.error("Dataset type not supported");<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                        throw new IllegalArgumentException("Dataset type not supported");<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>                // populate matrix<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                setRow(matrix, a);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                return matrix;<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>        /**<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>         * Removes NaNs and infinities from floating point datasets.<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>         * All other dataset types are ignored.<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>         * <a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>         * @param a dataset<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>         * @param value replacement value<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>         */<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>        public static void removeNansAndInfinities(Dataset a, final Number value) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                if (a instanceof DoubleDataset) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                        final IndexIterator it = set.getIterator();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                        final double[] data = set.getData();<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                        while (it.hasNext()) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                double x = data[it.index];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                        data[it.index] = dvalue;<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                } else if (a instanceof FloatDataset) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                        final IndexIterator it = set.getIterator();<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        final float[] data = set.getData();<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        while (it.hasNext()) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                float x = data[it.index];<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        data[it.index] = fvalue;<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                        }<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                        final int is = set.getElementsPerItem();<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                        final IndexIterator it = set.getIterator();<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        final double[] data = set.getData();<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        while (it.hasNext()) {<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        double x = data[it.index + j];<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                data[it.index + j] = dvalue;<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>                } else if (a instanceof CompoundFloatDataset) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                        final int is = set.getElementsPerItem();<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                        final IndexIterator it = set.getIterator();<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                        final float[] data = set.getData();<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                        while (it.hasNext()) {<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>                                        float x = data[it.index + j];<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                        if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                                data[it.index + j] = fvalue;<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                }<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>        }<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>         * Make floating point datasets contain only finite values. Infinities and NaNs are replaced<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>         * by +/- MAX_VALUE and 0, respectively.<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>         * All other dataset types are ignored.<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>         * <a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>         * @param a dataset<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>         */<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>        public static void makeFinite(Dataset a) {<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                if (a instanceof DoubleDataset) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                        final IndexIterator it = set.getIterator();<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                        final double[] data = set.getData();<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                        while (it.hasNext()) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                final double x = data[it.index];<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                if (Double.isNaN(x))<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                        data[it.index] = 0;<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                else if (Double.isInfinite(x))<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        data[it.index] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                        }<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                } else if (a instanceof FloatDataset) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                        final IndexIterator it = set.getIterator();<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                        final float[] data = set.getData();<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                        while (it.hasNext()) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                final float x = data[it.index];<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                if (Float.isNaN(x))<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                        data[it.index] = 0;<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                else if (Float.isInfinite(x))<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                        data[it.index] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                        }<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        final int is = set.getElementsPerItem();<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>                                for (int j = 0; j &lt; is; j++) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        final double x = data[it.index + j];<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                        if (Double.isNaN(x))<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                data[it.index + j] = 0;<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                        else if (Double.isInfinite(x))<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                                data[it.index + j] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                }<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        }<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                } else if (a instanceof CompoundFloatDataset) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        final int is = set.getElementsPerItem();<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                        final IndexIterator it = set.getIterator();<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                        final float[] data = set.getData();<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                        while (it.hasNext()) {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                        final float x = data[it.index + j];<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                        if (Float.isNaN(x))<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                data[it.index + j] = 0;<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                        else if (Float.isInfinite(x))<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                                data[it.index + j] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<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>                }<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        }<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span><a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        /**<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>         * Find absolute index of first value in dataset that is equal to given number<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>         * @param a<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>         * @param n<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>         */<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>        public static int findIndexEqualTo(final Dataset a, final double n) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                IndexIterator iter = a.getIterator();<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                while (iter.hasNext()) {<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                        if (a.getElementDoubleAbs(iter.index) == n)<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                break;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                return iter.index;<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>         * Find absolute index of first value in dataset that is greater than given number<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>         * @param a<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>         * @param n<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>         */<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>        public static int findIndexGreaterThan(final Dataset a, final double n) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                IndexIterator iter = a.getIterator();<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                while (iter.hasNext()) {<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                        if (a.getElementDoubleAbs(iter.index) &gt; n)<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                break;<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                }<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span><a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                return iter.index;<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>         * Find absolute index of first value in dataset that is greater than or equal to given number<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>         * @param a<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>         * @param n<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>         */<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        public static int findIndexGreaterThanOrEqualTo(final Dataset a, final double n) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                IndexIterator iter = a.getIterator();<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                while (iter.hasNext()) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                        if (a.getElementDoubleAbs(iter.index) &gt;= n)<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                break;<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>                return iter.index;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>        }<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span><a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>        /**<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>         * Find absolute index of first value in dataset that is less than given number<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>         * @param a<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>         * @param n<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>         */<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>        public static int findIndexLessThan(final Dataset a, final double n) {<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                IndexIterator iter = a.getIterator();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                while (iter.hasNext()) {<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                        if (a.getElementDoubleAbs(iter.index) &lt; n)<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                break;<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                }<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                return iter.index;<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        }<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span><a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>        /**<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>         * Find absolute index of first value in dataset that is less than or equal to given number<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>         * @param a<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>         * @param n<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>         */<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        public static int findIndexLessThanOrEqualTo(final Dataset a, final double n) {<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                IndexIterator iter = a.getIterator();<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                while (iter.hasNext()) {<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                        if (a.getElementDoubleAbs(iter.index) &lt;= n)<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                break;<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>                return iter.index;<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>        /**<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>         * Find first occurrences in one dataset of values given in another sorted dataset  <a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>         * @param a<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>         * @param values sorted 1D dataset of values to find<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>         * @return absolute indexes of those first occurrences (-1 is used to indicate value not found)<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>         */<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>        public static IntegerDataset findFirstOccurrences(final Dataset a, final Dataset values) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                if (values.getRank() != 1) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                }<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                IntegerDataset indexes = new IntegerDataset(values.getSize());<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                indexes.fill(-1);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span><a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                IndexIterator it = a.getIterator();<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                final int n = values.getSize();<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                if (values.getDType() == Dataset.INT64) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                        while (it.hasNext()) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        <a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                long vl = values.getLong(l);<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                if (x &lt;= vl) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                indexes.setAbs(l, it.index);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        continue;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                }<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                int h = n - 1;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                long vh = values.getLong(h);<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                if (x &gt;= vh) {<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                                indexes.setAbs(h, it.index);<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                        continue;<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                }<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                while (h - l &gt; 1) {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                        int m = (l + h) / 2;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                        long vm = values.getLong(m);<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                        if (x &lt; vm) {<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                h = m;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                        } else if (x &gt; vm) {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                                l = m;<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                        } else {<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                        indexes.setAbs(m, it.index);<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                break;<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                        }<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>                } else {<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                        while (it.hasNext()) {<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>        <a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                double vl = values.getDouble(l);<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                if (x &lt;= vl) {<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                indexes.setAbs(l, it.index);<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                        continue;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                }<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                int h = n - 1;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                double vh = values.getDouble(h);<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                if (x &gt;= vh) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                                indexes.setAbs(h, it.index);<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        continue;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                }<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                while (h - l &gt; 1) {<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                        int m = (l + h) / 2;<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                        double vm = values.getDouble(m);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                        if (x &lt; vm) {<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                h = m;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                        } else if (x &gt; vm) {<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                l = m;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                        } else {<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                                        indexes.setAbs(m, it.index);<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                                break;<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                        }<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>                return indexes;<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>        }<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span><a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>        /**<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>         * Find indexes in sorted dataset of values for each value in other dataset<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>         * @param a<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>         * @param values sorted 1D dataset of values to find<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>         * @return absolute indexes of values (-1 is used to indicate value not found)<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>         */<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>        public static IntegerDataset findIndexesForValues(final Dataset a, final Dataset values) {<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                if (values.getRank() != 1) {<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                }<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                IntegerDataset indexes = new IntegerDataset(a.getSize());<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>                indexes.fill(-1);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span><a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                IndexIterator it = a.getIterator();<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>                int i = -1;<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>                final int n = values.getSize();<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>                if (values.getDType() == Dataset.INT64) {<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                        while (it.hasNext()) {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                                i++;<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>        <a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>                                long vl = values.getLong(l);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                                if (x &lt;= vl) {<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>                                        if (x == vl)<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>                                                indexes.setAbs(i, l);<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>                                        continue;<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>                                }<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>                                int h = n - 1;<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>                                long vh = values.getLong(h);<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                                if (x &gt;= vh) {<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                                        if (x == vh)<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>                                                indexes.setAbs(i, h);<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                                        continue;<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                                }<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                                while (h - l &gt; 1) {<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                                        int m = (l + h) / 2;<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                                        long vm = values.getLong(m);<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>                                        if (x &lt; vm) {<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                                                h = m;<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                                        } else if (x &gt; vm) {<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                                                l = m;<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                                        } else {<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                                                indexes.setAbs(i, m);<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>                                                break;<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>                                        }<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>                                }<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>                        }<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>                } else {<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>                        while (it.hasNext()) {<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>                                i++;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>        <a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>                                double vl = values.getDouble(l);<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>                                if (x &lt;= vl) {<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>                                        if (x == vl)<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>                                                indexes.setAbs(i, l);<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                                        continue;<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>                                }<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>                                int h = n - 1;<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>                                double vh = values.getDouble(h);<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>                                if (x &gt;= vh) {<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>                                        if (x == vh)<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>                                                indexes.setAbs(i, h);<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>                                        continue;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>                                }<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>                                while (h - l &gt; 1) {<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>                                        int m = (l + h) / 2;<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>                                        double vm = values.getDouble(m);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>                                        if (x &lt; vm) {<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>                                                h = m;<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>                                        } else if (x &gt; vm) {<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>                                                l = m;<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>                                        } else {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>                                                indexes.setAbs(i, m);<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>                                                break;<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>                }<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span><a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>                return indexes;<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>        }<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span><a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>        /**<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>         * Roll items over given axis by given amount<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>         * @param a<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>         * @param shift<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>         * @param axis if null, then roll flattened dataset<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>         * @return rolled dataset<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>         */<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>        public static &lt;T extends Dataset&gt; T roll(final T a, final int shift, final Integer axis) {<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>                Dataset r = DatasetFactory.zeros(a);<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>                int is = a.getElementsPerItem();<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>                if (axis == null) {<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>                        IndexIterator it = a.getIterator();<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>                        int s = r.getSize();<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>                        int i = shift % s;<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>                        if (i &lt; 0)<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>                                i += s;<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>                        while (it.hasNext()) {<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>                                r.setObjectAbs(i, a.getObjectAbs(it.index));<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>                                i += is;<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>                                if (i &gt;= s) {<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>                                        i %= s;<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>                                }<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>                        }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>                } else {<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>                        PositionIterator pi = a.getPositionIterator(axis);<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>                        int s = a.getShapeRef()[axis];<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>                        @SuppressWarnings("deprecation")<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>                        Dataset u = DatasetFactory.zeros(is, new int[] {s}, a.getDType());<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>                        Dataset v = DatasetFactory.zeros(u);<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>                        int[] pos = pi.getPos();<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>                        boolean[] hit = pi.getOmit();<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                        while (pi.hasNext()) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>                                a.copyItemsFromAxes(pos, hit, u);<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>                                int i = shift % s;<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                                if (i &lt; 0)<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>                                        i += s;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>                                for (int j = 0; j &lt; s; j++) {<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                                        v.setObjectAbs(i, u.getObjectAbs(j*is));<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                                        i += is;<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>                                        if (i &gt;= s) {<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                                                i %= s;<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                                        }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>                                }<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>                                r.setItemsOnAxes(pos, hit, v.getBuffer());<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>                        }<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>                }<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>                return (T) r;<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>        }<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span><a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>        /**<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>         * Roll the specified axis backwards until it lies in given position<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>         * @param a<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>         * @param axis The rolled axis (index in shape array). Other axes are left unchanged in relative positions <a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>         * @param start The position with it right of the destination of the rolled axis<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>         * @return dataset with rolled axis<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>         */<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>        public static &lt;T extends Dataset&gt; T rollAxis(final T a, int axis, int start) {<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                int r = a.getRank();<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                if (axis &lt; 0)<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                        axis += r;<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>                if (axis &lt; 0 || axis &gt;= r) {<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                        throw new IllegalArgumentException("Axis is out of range: it should be &gt;= 0 and &lt; " + r);<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                }<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                if (start &lt; 0)<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                        start += r;<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                if (start &lt; 0 || start &gt; r) {<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                        throw new IllegalArgumentException("Start is out of range: it should be &gt;= 0 and &lt;= " + r);<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                }<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>                if (axis &lt; start)<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>                        start--;<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span><a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                if (axis == start)<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                        return a;<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span><a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                ArrayList&lt;Integer&gt; axes = new ArrayList&lt;Integer&gt;();<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>                        if (i != axis) {<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>                                axes.add(i);<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>                axes.add(start, axis);<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>                int[] aa = new int[r];<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>                        aa[i] = axes.get(i);<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>                }<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>                return (T) a.getTransposedView(aa);<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>        }<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span><a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>        private static SliceND createFlippedSlice(final Dataset a, int axis) {<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                int[] shape = a.getShapeRef();<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                SliceND slice = new SliceND(shape);<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                slice.flip(axis);<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                return slice;<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>        }<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span><a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>        /**<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>         * Flip items in left/right direction, column-wise, or along second axis <a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>         * @param a dataset must be at least 2D<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>         * @return view of flipped dataset<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>         */<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>        public static &lt;T extends Dataset&gt; T flipLeftRight(final T a) {<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                if (a.getRank() &lt; 2) {<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>                }<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>                return (T) a.getSliceView(createFlippedSlice(a, 1));<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>        }<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span><a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>        /**<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>         * Flip items in up/down direction, row-wise, or along first axis <a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>         * @param a dataset<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>         * @return view of flipped dataset<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>         */<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>        public static &lt;T extends Dataset&gt; T flipUpDown(final T a) {<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>                return (T) a.getSliceView(createFlippedSlice(a, 0));<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>        }<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span><a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>        /**<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>         * @param a dataset must be at least 2D<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>         * @return view of flipped dataset<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>         */<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a) {<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                return rotate90(a, 1);<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>        /**<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>         * @param a dataset must be at least 2D<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>         * @param k number of 90-degree rotations<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>         * @return view of flipped dataset<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>         */<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a, int k) {<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>                k = k % 4;<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>                while (k &lt; 0) {<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>                        k += 4;<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>                }<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                int r = a.getRank();<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                if (r &lt; 2) {<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                }<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                switch (k) {<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                case 1: case 3:<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                        int[] axes = new int[r];<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                        axes[0] = 1;<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                        axes[1] = 0;<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>                        for (int i = 2; i &lt; r; i++) {<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                                axes[i] = i;<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                        }<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>                        Dataset t = a.getTransposedView(axes);<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                        return (T) t.getSliceView(createFlippedSlice(t, k == 1 ? 0 : 1));<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                case 2:<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                        SliceND s = createFlippedSlice(a, 0);<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                        s.flip(1);<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                        return (T) a.getSliceView(s);<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                default:<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                case 0:<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>                        return a;<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>                }<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>        }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span><a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>        /**<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>         * Select content according where condition is true. All inputs are broadcasted to a maximum shape<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span>         * @param condition boolean dataset<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>         * @param x<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>         * @param y<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>         * @return dataset where content is x or y depending on whether condition is true or otherwise <a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>         */<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>        public static Dataset select(BooleanDataset condition, Object x, Object y) {<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>                Object[] all = new Object[] {condition, x, y};<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>                condition = (BooleanDataset) dAll[0];<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>                Dataset dx = dAll[1];<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>                Dataset dy = dAll[2];<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>                int dt = DTypeUtils.getBestDType(dx.getDType(),dy.getDType());<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>                int ds = Math.max(dx.getElementsPerItem(), dy.getElementsPerItem());<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span><a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                @SuppressWarnings("deprecation")<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                Dataset r = DatasetFactory.zeros(ds, condition.getShapeRef(), dt);<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>                IndexIterator iter = condition.getIterator(true);<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                final int[] pos = iter.getPos();<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>                int i = 0;<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>                while (iter.hasNext()) {<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>                        r.setObjectAbs(i++, condition.getElementBooleanAbs(iter.index) ? dx.getObject(pos) : dy.getObject(pos));<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>                }<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>                return r;<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>        }<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span><a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>        /**<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>         * Select content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>         * @param conditions array of boolean datasets<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>         * @param choices array of datasets or objects<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>         * @param def default value (can be a dataset)<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>         * @return dataset<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>         */<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>        public static Dataset select(BooleanDataset[] conditions, Object[] choices, Object def) {<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>                final int n = conditions.length;<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>                if (choices.length != n) {<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>                        throw new IllegalArgumentException("Choices list is not same length as conditions list");<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>                }<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>                Object[] all = new Object[2*n];<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>                System.arraycopy(conditions, 0, all, 0, n);<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>                System.arraycopy(choices, 0, all, n, n);<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>                conditions = new BooleanDataset[n];<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>                Dataset[] dChoices = new Dataset[n];<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>                System.arraycopy(dAll, 0, conditions, 0, n);<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>                System.arraycopy(dAll, n, dChoices, 0, n);<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                int dt = -1;<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                int ds = -1;<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>                        Dataset a = dChoices[i];<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>                        int t = a.getDType();<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>                        if (t &gt; dt)<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>                                dt = t;<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>                        int s = a.getElementsPerItem();<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>                        if (s &gt; ds)<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>                                ds = s;<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>                }<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>                if (dt &lt; 0 || ds &lt; 1) {<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>                }<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span><a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>                @SuppressWarnings("deprecation")<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>                Dataset r = DatasetFactory.zeros(ds, conditions[0].getShapeRef(), dt);<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>                Dataset d = DatasetFactory.createFromObject(def).getBroadcastView(r.getShapeRef());<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>                PositionIterator iter = new PositionIterator(r.getShapeRef());<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>                final int[] pos = iter.getPos();<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>                int i = 0;<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>                while (iter.hasNext()) {<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>                        int j = 0;<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>                        for (; j &lt; n; j++) {<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>                                if (conditions[j].get(pos)) {<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>                                        r.setObjectAbs(i++, dChoices[j].getObject(pos));<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>                                        break;<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>                        if (j == n) {<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>                                r.setObjectAbs(i++, d.getObject(pos));<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>                        }<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>                }<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>                return r;<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>        }<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span><a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>        /**<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>         * Choose content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>         * @param index integer dataset (ideally, items should be in [0, n) range, if there are n choices)<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>         * @param choices array of datasets or objects<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>         * @param throwAIOOBE if true, throw array index out of bound exception<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>         * @param clip true to clip else wrap indices out of bounds; only used when throwAOOBE is false<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>         * @return dataset<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>         */<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>        public static Dataset choose(IntegerDataset index, Object[] choices, boolean throwAIOOBE, boolean clip) {<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                final int n = choices.length;<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                Object[] all = new Object[n + 1];<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                System.arraycopy(choices, 0, all, 0, n);<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>                all[n] = index;<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>                Dataset[] dChoices = BroadcastUtils.convertAndBroadcast(all);<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>                int dt = -1;<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>                int ds = -1;<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>                int mr = -1;<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>                        Dataset a = dChoices[i];<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>                        int r = a.getRank();<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>                        if (r &gt; mr)<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>                                mr = r;<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>                        int t = a.getDType();<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>                        if (t &gt; dt)<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>                                dt = t;<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>                        int s = a.getElementsPerItem();<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>                        if (s &gt; ds)<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>                                ds = s;<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>                }<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>                if (dt &lt; 0 || ds &lt; 1) {<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                }<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                index = (IntegerDataset) dChoices[n];<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                dChoices[n] = null;<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span><a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                @SuppressWarnings("deprecation")<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                Dataset r = DatasetFactory.zeros(ds, index.getShape(), dt);<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>                IndexIterator iter = index.getIterator(true);<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                final int[] pos = iter.getPos();<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                int i = 0;<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>                while (iter.hasNext()) {<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                        int j = index.getAbs(iter.index);<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                        if (j &lt; 0) {<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                                if (throwAIOOBE)<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                                if (clip) {<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>                                        j = 0;<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>                                } else {<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>                                        j %= n;<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>                                        j += n; // as remainder still negative<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>                                }<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>                        }<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>                        if (j &gt;= n) {<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>                                if (throwAIOOBE)<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>                                if (clip) {<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>                                        j = n - 1;<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>                                } else {<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                                        j %= n;<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>                                }<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>                        }<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>                        Dataset c = dChoices[j];<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>                        r.setObjectAbs(i++, c.getObject(pos));<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                return r;<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>        }<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>         * Calculate positions in given shape from a dataset of 1-D indexes<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>         * @param indices<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>         * @param shape<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>         * @return list of positions as integer datasets<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>         */<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>        public static List&lt;IntegerDataset&gt; calcPositionsFromIndexes(Dataset indices, int[] shape) {<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>                int rank = shape.length;<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>                List&lt;IntegerDataset&gt; posns = new ArrayList&lt;IntegerDataset&gt;();<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>                int[] iShape = indices.getShapeRef();<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>                        posns.add(new IntegerDataset(iShape));<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>                }<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>                IndexIterator it = indices.getIterator(true);<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>                int[] pos = it.getPos();<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>                while (it.hasNext()) {<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>                        int n = indices.getInt(pos);<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                        int[] p = ShapeUtils.getNDPositionFromShape(n, shape);<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                                posns.get(i).setItem(p[i], pos);<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                        }<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                }<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                return posns;<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>        }<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span><a name="line.2533"></a>
+<span class="sourceLineNo">2534</span><a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>        /**<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>         * Calculate indexes in given shape from datasets of position<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>         * @param positions as a list of datasets where each holds the position in a dimension<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>         * @param shape<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>         * @param mode either null, zero-length, unit length or length of rank of shape where<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>         *  0 = raise exception, 1 = wrap, 2 = clip<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>         * @return indexes as an integer dataset<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>         */<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>        public static IntegerDataset calcIndexesFromPositions(List&lt;? extends Dataset&gt; positions, int[] shape, int... mode) {<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>                int rank = shape.length;<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>                if (positions.size() != rank) {<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>                        throw new IllegalArgumentException("Number of position datasets must be equal to rank of shape");<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>                }<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span><a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>                if (mode == null || mode.length == 0) {<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>                        mode = new int[rank];<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>                } else if (mode.length == 1) {<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>                        int m = mode[0];<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>                        mode = new int[rank];<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>                        Arrays.fill(mode, m);<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>                } else if (mode.length != rank) {<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>                        throw new IllegalArgumentException("Mode length greater than one must match rank of shape");<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>                }<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>                        int m = mode[i];<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>                        if (m &lt; 0 || m &gt; 2) {<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>                                throw new IllegalArgumentException("Unknown mode value - it must be 0, 1, or 2");<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>                        }<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                }<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span><a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                Dataset p = positions.get(0);<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                IntegerDataset indexes = new IntegerDataset(p.getShapeRef());<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                IndexIterator it = p.getIterator(true);<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                int[] iPos = it.getPos();<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                int[] tPos = new int[rank];<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                while (it.hasNext()) {<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                                p = positions.get(i);<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                                int j = p.getInt(iPos);<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                                int d = shape[i];<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                                if (mode[i] == 0) {<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                                        if (j &lt; 0 || j &gt;= d) {<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                                                throw new ArrayIndexOutOfBoundsException("Position value exceeds dimension in shape");<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                                        }<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>                                } else if (mode[i] == 1) {<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                                        while (j &lt; 0)<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                                                j += d;<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>                                        while (j &gt;= d)<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>                                                j -= d;<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>                                } else {<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>                                        if (j &lt; 0)<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>                                                j = 0;<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>                                        if (j &gt;= d)<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>                                                j = d - 1;<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>                                }<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>                                tPos[i] = j;<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                        }<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                        indexes.set(ShapeUtils.getFlat1DIndex(shape, tPos), iPos);<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>                return indexes;<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>        }<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>         * Serialize dataset by flattening it. Discards metadata<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>         * @param data<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>         * @return some java array<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>         */<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>        public static Serializable serializeDataset(final IDataset data) {<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>                Dataset d = convertToDataset(data.getSliceView());<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                d.clearMetadata(null);<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                return d.flatten().getBuffer();<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>         * Extract values where condition is non-zero. This is similar to Dataset#getByBoolean but supports broadcasting<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>         * @param data<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>         * @param condition should be broadcastable to data<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>         * @return 1-D dataset of values<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>         */<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>        @SuppressWarnings("deprecation")<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>        public static Dataset extract(final IDataset data, final IDataset condition) {<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>                Dataset a = convertToDataset(data.getSliceView());<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                Dataset b = cast(condition.getSliceView(), Dataset.BOOL);<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span><a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                try {<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>                        return a.getByBoolean(b);<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>                } catch (IllegalArgumentException e) {<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>                        final int length = ((Number) b.sum()).intValue();<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>        <a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>                        BroadcastPairIterator it = new BroadcastPairIterator(a, b, null, false);<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>                        int size = ShapeUtils.calcSize(it.getShape());<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>                        Dataset c;<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>                        if (length &lt; size) {<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>                                int[] ashape = it.getFirstShape();<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>                                int[] bshape = it.getSecondShape();<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>                                int r = ashape.length;<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>                                size = length;<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>                                        int s = ashape[i];<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>                                        if (s &gt; 1 &amp;&amp; bshape[i] == 1) {<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>                                                size *= s;<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>                        c = DatasetFactory.zeros(new int[] {size}, a.getDType());<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>        <a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>                        int i = 0;<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>                        if (it.isOutputDouble()) {<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>                                while (it.hasNext()) {<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>                                        if (it.bLong != 0) {<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                                                c.setObjectAbs(i++, it.aDouble);<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                                        }<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                                }<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>                        } else {<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span>                                while (it.hasNext()) {<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>                                        if (it.bLong != 0) {<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>                                                c.setObjectAbs(i++, it.aLong);<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>                                        }<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                                }<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                        }<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>        <a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>                        return c;<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>                }<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>        }<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>}<a name="line.2660"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..e66151c
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..fa9d99f
--- /dev/null
+++ b/apidocs/2.0.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(0));<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.0.1/src-html/org/eclipse/january/dataset/DiscontiguousIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DiscontiguousIterator.html
new file mode 100644
index 0000000..40e8abe
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DiscontiguousIterator.html
@@ -0,0 +1,177 @@
+<!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 non-contiguous or fragmented datasets<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class DiscontiguousIterator 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[] gaps; // gaps in dataset<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int imax; // maximum index in array<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int istep; // step over items<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        final private int[] pos; // position in dataset<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>         * Constructor for an iterator over the elements of a dataset that are<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * within the dimensions<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         *<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param dataShape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param length of entire data array<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public DiscontiguousIterator(final int[] shape, final int[] dataShape, final int length) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                this(shape, dataShape, length, 1);<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>         * Constructor for an iterator over the elements of a dataset that are<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * within the dimensions<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>         * @param dataShape<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param length of entire data array<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param isize number of elements in an item<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public DiscontiguousIterator(final int[] shape, final int[] dataShape, final int length, final int isize) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                this.shape = shape;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                endrank = shape.length - 1;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                istep = isize;<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>                index = -isize;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                imax = length;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                gaps = new int[endrank + 1];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                int chunk = isize;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                for (int i = endrank; i &gt;= 0; i--) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        gaps[i] = (dataShape[i] - shape[i])*chunk;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        chunk *= dataShape[i];<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>        @Override<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public boolean hasNext() {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                // now move on one position<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                int j = endrank;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                for (; j &gt;= 0; j--) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        pos[j]++;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        if (pos[j] &gt;= shape[j]) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                pos[j] = 0;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                index += gaps[j];<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } else {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                break;<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>                if (j == -1) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        index = imax;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return false;<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 += istep;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                return index &lt; imax;<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 int[] getPos() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                return pos;<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>        @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public void reset() {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                Arrays.fill(pos, 0);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                pos[endrank] = -1;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                index = -istep;<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 int[] getShape() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return 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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..23d2aae
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,1379 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        DoubleDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                DoubleDataset other = (DoubleDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 DoubleDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new DoubleDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * <a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static DoubleDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                DoubleDataset result = new DoubleDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        <a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         // NAN_OMIT<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        /** // NAN_OMIT<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * // NAN_OMIT<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop // NAN_OMIT<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */ // NAN_OMIT<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static DoubleDataset createRange(final double stop) { // NAN_OMIT<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 1); // NAN_OMIT<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        } // NAN_OMIT<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         // 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>         * @param start // NAN_OMIT<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop // NAN_OMIT<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step // NAN_OMIT<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */ // NAN_OMIT<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static DoubleDataset createRange(final double start, final double stop, final double step) { // NAN_OMIT<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step); // NAN_OMIT<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                DoubleDataset result = new DoubleDataset(size); // NAN_OMIT<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) { // NAN_OMIT<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (start + i * step); // PRIM_TYPE // NAN_OMIT // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                } // NAN_OMIT<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result; // NAN_OMIT<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        } // NAN_OMIT<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static DoubleDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new DoubleDataset(shape).fill(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 DoubleDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public double[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 DoubleDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                DoubleDataset view = new DoubleDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * <a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public double getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return (long) data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * <a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, DTypeUtils.toReal(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public double get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public double get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public double get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 double get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Double.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Double.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Double.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Double.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return (float) get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return (float) get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return (float) get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return (float) get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         * <a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final double value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * <a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final double value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * <a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final double value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * <a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final double value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem(DTypeUtils.toReal(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem(DTypeUtils.toReal(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem(DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toReal(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final double[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public DoubleDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty(); // BOOLEAN_OMIT<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) { // BOOLEAN_OMIT<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) { // BOOLEAN_OMIT<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data); // BOOLEAN_OMIT<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else { // BOOLEAN_OMIT<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                DoubleDataset ads = clone().sort(null); // BOOLEAN_OMIT<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads); // BOOLEAN_OMIT<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        } // BOOLEAN_OMIT<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else { // BOOLEAN_OMIT<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis); // BOOLEAN_OMIT<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                         // BOOLEAN_OMIT <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        DoubleDataset ads = new DoubleDataset(shape[axis]); // BOOLEAN_OMIT<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis); // BOOLEAN_OMIT<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos(); // BOOLEAN_OMIT<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit(); // BOOLEAN_OMIT<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) { // BOOLEAN_OMIT<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads); // BOOLEAN_OMIT<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data); // BOOLEAN_OMIT<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data); // BOOLEAN_OMIT<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        } // BOOLEAN_OMIT<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                } // BOOLEAN_OMIT<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                return this; // BOOLEAN_OMIT<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public DoubleDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Double&gt; set = new TreeSet&lt;Double&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                DoubleDataset u = new DoubleDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                double[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Double v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public DoubleDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                DoubleDataset result = new DoubleDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                double[] rdata = ((DoubleDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public DoubleDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public DoubleDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public DoubleDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem(ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        DoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public DoubleDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                double v = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final double value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<a name="line.894"></a>
+<span class="sourceLineNo">895</span><a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (Double.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                } // REAL_ONLY<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        } // REAL_ONLY<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                } else // REAL_ONLY<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        while (iter.hasNext()) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                if (data[iter.index] == value) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                        posns.add(pos.clone());<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>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (max == null) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        max = findPositions(md.getMaximum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        md.setMaximumPositions(max);<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 max.get(0); // first maximum<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 int[] minPos(boolean... ignoreInvalids) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>                if (min == null) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        min = findPositions(md.getMinimum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<a name="line.946"></a>
+<span class="sourceLineNo">947</span>        }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>        @Override<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        public boolean containsNans() {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        if (Double.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                return true; // REAL_ONLY<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                } // REAL_ONLY<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                return false;<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 boolean containsInfs() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        if (Double.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                return true; // REAL_ONLY<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                } // REAL_ONLY<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return false;<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>        @Override<a name="line.969"></a>
+<span class="sourceLineNo">970</span>        public boolean containsInvalidNumbers() {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        double x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                return true; // REAL_ONLY<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } // REAL_ONLY<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                return false;<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>        @Override<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        public DoubleDataset iadd(final Object b) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                setDirty(); // NAN_OMIT<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        if (useLong) { // NAN_OMIT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        data[it.index] += lb; // NAN_OMIT<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                } // NAN_OMIT<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        } else { // NAN_OMIT<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                final double db = bds.getElementDoubleAbs(0); // NAN_OMIT<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        data[it.index] += db; // NAN_OMIT<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                } // NAN_OMIT<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } // NAN_OMIT<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                } else { // NAN_OMIT<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) { // NAN_OMIT<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        data[it.aIndex] += it.bLong; // NAN_OMIT<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                } // NAN_OMIT<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        } else { // NAN_OMIT<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        data[it.aIndex] += it.bDouble; // NAN_OMIT<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                } // NAN_OMIT<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        } // NAN_OMIT<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                } // NAN_OMIT<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return this;<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>        @Override<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        public DoubleDataset isubtract(final Object b) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                setDirty(); // NAN_OMIT<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        if (useLong) { // NAN_OMIT<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        data[it.index] -= lb; // NAN_OMIT<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                } // NAN_OMIT<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        } else { // NAN_OMIT<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                final double db = bds.getElementDoubleAbs(0); // NAN_OMIT<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        data[it.index] -= db; // NAN_OMIT<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                } // NAN_OMIT<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        } // NAN_OMIT<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                } else { // NAN_OMIT<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        if (useLong) { // NAN_OMIT<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                it.setOutputDouble(false); // NAN_OMIT<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        data[it.aIndex] -= it.bLong; // NAN_OMIT<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                } // NAN_OMIT<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        } else { // NAN_OMIT<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                it.setOutputDouble(true); // NAN_OMIT<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        data[it.aIndex] -= it.bDouble; // NAN_OMIT<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                } // NAN_OMIT<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        } // NAN_OMIT<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                } // NAN_OMIT<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                return this;<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>        @Override<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        public DoubleDataset imultiply(final Object b) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                setDirty(); // NAN_OMIT<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        if (useLong) { // NAN_OMIT<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                        data[it.index] *= lb; // NAN_OMIT<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                } // NAN_OMIT<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        } else { // NAN_OMIT<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                final double db = bds.getElementDoubleAbs(0); // NAN_OMIT<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                        data[it.index] *= db; // NAN_OMIT<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                } // NAN_OMIT<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        } // NAN_OMIT<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                } else { // NAN_OMIT<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (useLong) { // NAN_OMIT<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        data[it.aIndex] *= it.bLong; // NAN_OMIT<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                } // NAN_OMIT<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        } else { // 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.bDouble; // NAN_OMIT<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                } // NAN_OMIT<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        } // NAN_OMIT<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                } // NAN_OMIT<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                return this;<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>        @Override<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        public DoubleDataset idivide(final Object b) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                setDirty(); // NAN_OMIT<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        if (useLong) { // NAN_OMIT<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        data[it.index] /= lb; // NAN_OMIT<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                } // NAN_OMIT<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                // } // INT_USE // NAN_OMIT<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                        } else { // NAN_OMIT<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final double db = bds.getElementDoubleAbs(0); // NAN_OMIT<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                // if (db == 0) { // INT_USE // NAN_OMIT<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        data[it.index] /= db; // NAN_OMIT<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                } // NAN_OMIT<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                // } // INT_USE // NAN_OMIT<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        } // NAN_OMIT<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                } else { // NAN_OMIT<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        if (useLong) { // NAN_OMIT<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        // if (it.bLong == 0) { // INT_USE // NAN_OMIT<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                        data[it.aIndex] /= it.bLong; // NAN_OMIT<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                } // NAN_OMIT<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        } else { // NAN_OMIT<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        // if (it.bDouble == 0) { // INT_USE // NAN_OMIT<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        data[it.aIndex] /= it.bDouble; // NAN_OMIT<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                } // NAN_OMIT<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                        } // NAN_OMIT<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                } // NAN_OMIT<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                return this;<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>        @Override<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        public DoubleDataset ifloor() {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                setDirty(); // REAL_ONLY<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        data[it.index] = Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                } // REAL_ONLY<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                return this;<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>        @Override<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>        public DoubleDataset iremainder(final Object b) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                setDirty(); // NAN_OMIT<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        if (useLong) { // NAN_OMIT<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } // NAN_OMIT<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                // } // INT_USE // NAN_OMIT<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else { // NAN_OMIT<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                final long lb = bds.getElementLongAbs(0); // NAN_OMIT<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                } // NAN_OMIT<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                // } // INT_USE // NAN_OMIT<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } // NAN_OMIT<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                } else { // NAN_OMIT<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (useLong) { // NAN_OMIT<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                        data[it.aIndex] %= it.bLong; // NAN_OMIT // INT_EXCEPTION<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                } // NAN_OMIT<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                        } else { // NAN_OMIT<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        data[it.aIndex] %= it.bDouble; // NAN_OMIT // INT_EXCEPTION<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                } // NAN_OMIT<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                        } // NAN_OMIT<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                } // NAN_OMIT<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                return this;<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>        @Override<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        public DoubleDataset ipower(final Object b) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                setDirty(); // NAN_OMIT<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final double vr = bds.getElementDoubleAbs(0); // NAN_OMIT<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                final double vi = bds.getElementDoubleAbs(1); // NAN_OMIT<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                if (vi == 0) { // NAN_OMIT<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                final double v = Math.pow(data[it.index], vr); // NAN_OMIT<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        } // NAN_OMIT<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                } else { // NAN_OMIT<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        final Complex zv = new Complex(vr, vi); // NAN_OMIT<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                Complex zd = new Complex(data[it.index], 0); // NAN_OMIT<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                final double v = zd.pow(zv).getReal(); // NAN_OMIT<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        } // NAN_OMIT<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                } // NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {// NAN_OMIT<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        final double v = Math.pow(data[it.index], vr); // NAN_OMIT<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                } // NAN_OMIT<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        } // NAN_OMIT<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                } else { // NAN_OMIT<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        it.setOutputDouble(true); // NAN_OMIT<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1)); // NAN_OMIT<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal(); // NAN_OMIT<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                } // NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        } else {// NAN_OMIT<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        final double v = Math.pow(it.aDouble, it.bDouble); // NAN_OMIT<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                } // NAN_OMIT<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                        } // NAN_OMIT<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                } // NAN_OMIT<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                return this;<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>        @Override<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                it.setOutputDouble(true); // NAN_OMIT<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double sum = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                double comp = 0; // NAN_OMIT<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                if (ignoreNaNs) { // REAL_ONLY // NAN_OMIT<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (w == null) { // REAL_ONLY // NAN_OMIT<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                while (it.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        final double err = diff * diff - comp; // REAL_ONLY // NAN_OMIT<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        } else { // REAL_ONLY // NAN_OMIT<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY // NAN_OMIT<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY // NAN_OMIT<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                        } // REAL_ONLY // NAN_OMIT<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                } else // REAL_ONLY // NAN_OMIT<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                { // NAN_OMIT<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                        if (w == null) { // NAN_OMIT<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        final double err = diff * diff - comp; // NAN_OMIT<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        sum = temp; // NAN_OMIT<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                } // NAN_OMIT<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        } else { // NAN_OMIT<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                IndexIterator itw = w.getIterator(); // NAN_OMIT<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // NAN_OMIT<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // NAN_OMIT<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        sum = temp; // NAN_OMIT<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                } // NAN_OMIT<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        } // NAN_OMIT<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                } // NAN_OMIT<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                return sum;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>}<a name="line.1307"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..a2900ef
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,1379 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        FloatDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = (float) dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                FloatDataset other = (FloatDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 FloatDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new FloatDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static FloatDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                FloatDataset result = new FloatDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static FloatDataset createRange(final double stop) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 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>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param start<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static FloatDataset createRange(final double start, final double stop, final double step) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                FloatDataset result = new FloatDataset(size);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result;<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static FloatDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new FloatDataset(shape).fill(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 FloatDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public float[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 FloatDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                FloatDataset view = new FloatDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public float getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return (long) data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, (float) DTypeUtils.toReal(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public float get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public float get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public float get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 float get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Float.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Float.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Float.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Float.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         *<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final float value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         *<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final float value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final float value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         *<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final float value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem((float) DTypeUtils.toReal(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem((float) DTypeUtils.toReal(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem((float) DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem((float) DTypeUtils.toReal(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final float[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public FloatDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                FloatDataset ads = clone().sort(null);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        FloatDataset ads = new FloatDataset(shape[axis]);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public FloatDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Float&gt; set = new TreeSet&lt;Float&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                FloatDataset u = new FloatDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                float[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Float v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public FloatDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                FloatDataset result = new FloatDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                float[] rdata = ((FloatDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public FloatDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public FloatDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public FloatDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem((float) ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        FloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public FloatDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                float v = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final float value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<a name="line.894"></a>
+<span class="sourceLineNo">895</span><a name="line.895"></a>
+<span class="sourceLineNo">896</span>                if (Float.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                } // REAL_ONLY<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        } // REAL_ONLY<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                } else // REAL_ONLY<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        while (iter.hasNext()) {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                if (data[iter.index] == value) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                        posns.add(pos.clone());<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>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (max == null) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        max = findPositions(md.getMaximum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        md.setMaximumPositions(max);<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 max.get(0); // first maximum<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 int[] minPos(boolean... ignoreInvalids) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>                if (min == null) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        min = findPositions(md.getMinimum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<a name="line.946"></a>
+<span class="sourceLineNo">947</span>        }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>        @Override<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        public boolean containsNans() {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        if (Float.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                return true; // REAL_ONLY<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                } // REAL_ONLY<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                return false;<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 boolean containsInfs() {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        if (Float.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                return true; // REAL_ONLY<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                } // REAL_ONLY<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return false;<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>        @Override<a name="line.969"></a>
+<span class="sourceLineNo">970</span>        public boolean containsInvalidNumbers() {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        float x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                return true; // REAL_ONLY<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                } // REAL_ONLY<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                return false;<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>        @Override<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        public FloatDataset iadd(final Object b) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                setDirty();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                if (bds.getSize() == 1) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        final IndexIterator it = getIterator();<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        if (useLong) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                while (it.hasNext()) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        data[it.index] += lb;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        } else {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                while (it.hasNext()) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        data[it.index] += db;<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>                } else {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        it.setOutputDouble(!useLong);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                while (it.hasNext()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        data[it.aIndex] += it.bLong;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        } else {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                while (it.hasNext()) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        data[it.aIndex] += it.bDouble;<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>                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return this;<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>        @Override<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        public FloatDataset isubtract(final Object b) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                setDirty();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                if (bds.getSize() == 1) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        final IndexIterator it = getIterator();<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        if (useLong) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                while (it.hasNext()) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        data[it.index] -= lb;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        } else {<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                while (it.hasNext()) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        data[it.index] -= db;<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>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        if (useLong) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                it.setOutputDouble(false);<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                while (it.hasNext()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        } else {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                it.setOutputDouble(true);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                while (it.hasNext()) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        data[it.aIndex] -= it.bDouble;<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>                }<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                return this;<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>        @Override<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        public FloatDataset imultiply(final Object b) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                setDirty();<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                if (bds.getSize() == 1) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        final IndexIterator it = getIterator();<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        if (useLong) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                while (it.hasNext()) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                        data[it.index] *= lb;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        } else {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                while (it.hasNext()) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                        data[it.index] *= db;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                } else {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        it.setOutputDouble(!useLong);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (useLong) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                while (it.hasNext()) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        } else {<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.bDouble;<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>                }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                return this;<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>        @Override<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        public FloatDataset idivide(final Object b) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                setDirty();<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                if (bds.getSize() == 1) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        if (useLong) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                // if (lb == 0) { // INT_USE<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                //      fill(0); // INT_USE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                // } else { // INT_USE<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                final IndexIterator it = getIterator();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                while (it.hasNext()) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        data[it.index] /= lb;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                // } // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                        } else {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                // if (db == 0) { // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                //      fill(0); // INT_USE<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                // } else { // INT_USE<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                final IndexIterator it = getIterator();<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (it.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        data[it.index] /= db;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                // } // INT_USE<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                } else {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                        it.setOutputDouble(!useLong);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        if (useLong) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                while (it.hasNext()) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        // if (it.bLong == 0) { // INT_USE<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        // } else { // INT_USE<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                        // } // INT_USE<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        } else {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                while (it.hasNext()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        // if (it.bDouble == 0) { // INT_USE<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        // } else { // INT_USE<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        // } // INT_USE<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>                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                return this;<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>        @Override<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>        public FloatDataset ifloor() {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                setDirty(); // REAL_ONLY<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                        data[it.index] = (float) Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                } // REAL_ONLY<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                return this;<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>        @Override<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>        public FloatDataset iremainder(final Object b) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                setDirty();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                if (bds.getSize() == 1) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        if (useLong) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                // if (lb == 0) { // INT_USE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                //      fill(0); // INT_USE<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                // } else { // INT_USE<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                final IndexIterator it = getIterator();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (it.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.index] %= lb;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                // } // INT_USE<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                // if (lb == 0) { // INT_USE<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                //      fill(0); // INT_USE<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                // } else { // INT_USE<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                final IndexIterator it = getIterator();<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        data[it.index] %= lb;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                // } // INT_USE<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                } else {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        it.setOutputDouble(!useLong);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (useLong) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                while (it.hasNext()) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                        data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                        } else {<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                while (it.hasNext()) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        data[it.aIndex] %= it.bDouble; // INT_EXCEPTION<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>                }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                return this;<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>        @Override<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        public FloatDataset ipower(final Object b) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                setDirty();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                if (bds.getSize() == 1) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        final IndexIterator it = getIterator();<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        if (bds.isComplex()) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                if (vi == 0) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        while (it.hasNext()) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                // } else { // INT_USE<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                                // } // INT_USE<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                } else {<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        while (it.hasNext()) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                                // } else { // INT_USE<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                                // } // INT_USE<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>                        } else {// NAN_OMIT<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                while (it.hasNext()) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        //      data[it.index] = 0; // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        // } else { // INT_USE<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        // } // INT_USE<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>                } else {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        it.setOutputDouble(true);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        if (bds.isComplex()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        // } else { // INT_USE<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                        // } // INT_USE<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        } else {// NAN_OMIT<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                while (it.hasNext()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        // } else { // INT_USE<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        // } // INT_USE<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>                }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                return this;<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>        @Override<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                it.setOutputDouble(true);<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                double sum = 0;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                double comp = 0;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                if (ignoreNaNs) { // REAL_ONLY<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        if (w == null) { // REAL_ONLY<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                while (it.hasNext()) { // REAL_ONLY<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                                continue; // REAL_ONLY<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        final double err = diff * diff - comp; // REAL_ONLY<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        sum = temp; // REAL_ONLY<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                } // REAL_ONLY<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        } else { // REAL_ONLY<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                continue; // REAL_ONLY<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        sum = temp; // REAL_ONLY<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                } // REAL_ONLY<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                        } // REAL_ONLY<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                } else // REAL_ONLY<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                        if (w == null) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                while (it.hasNext()) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        final double err = diff * diff - comp;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        final double temp = sum + err;<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        comp = (temp - sum) - err;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        sum = temp;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                        } else {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                IndexIterator itw = w.getIterator();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        final double temp = sum + err;<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                        comp = (temp - sum) - err;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                        sum = temp;<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                }<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                return sum;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>}<a name="line.1307"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..f250aa9
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..0878139
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..db39463
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..2c97f13
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..b78d9e5
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..83fe7f1
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..2464be9
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..62fd6f8
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..c432c95
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..336140d
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IOperation.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..59a7730
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..2279295
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..c77af42
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..4f65727
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,1335 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        IntegerDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = (int) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                IntegerDataset other = (IntegerDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 IntegerDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new IntegerDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static IntegerDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                IntegerDataset result = new IntegerDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static IntegerDataset createRange(final double stop) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 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>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param start<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static IntegerDataset createRange(final double start, final double stop, final double step) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                IntegerDataset result = new IntegerDataset(size);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result;<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static IntegerDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new IntegerDataset(shape).fill(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 IntegerDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public int[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 IntegerDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                IntegerDataset view = new IntegerDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public int getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, (int) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public int get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public int get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public int get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 int get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Integer.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Integer.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Integer.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Integer.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         *<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final int value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         *<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final int value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final int value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         *<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final int value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem((int) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem((int) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem((int) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem((int) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public IntegerDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                IntegerDataset ads = clone().sort(null);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        IntegerDataset ads = new IntegerDataset(shape[axis]);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public IntegerDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Integer&gt; set = new TreeSet&lt;Integer&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                IntegerDataset u = new IntegerDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Integer v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public IntegerDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                IntegerDataset result = new IntegerDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int[] rdata = ((IntegerDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public IntegerDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public IntegerDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public IntegerDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem((int) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        IntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public IntegerDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                int v = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final int value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (data[iter.index] == value) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone());<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>                }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (max == null) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>        @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>                if (min == null) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public boolean containsNans() {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return false;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public boolean containsInfs() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return false;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public boolean containsInvalidNumbers() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return false;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public IntegerDataset iadd(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                setDirty();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                if (bds.getSize() == 1) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        final IndexIterator it = getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (useLong) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                while (it.hasNext()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                while (it.hasNext()) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        data[it.index] += db;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        it.setOutputDouble(!useLong);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        if (useLong) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        data[it.aIndex] += it.bLong;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        } else {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        data[it.aIndex] += it.bDouble;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<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 this;<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>        @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public IntegerDataset isubtract(final Object b) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                setDirty();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (bds.getSize() == 1) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        final IndexIterator it = getIterator();<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        if (useLong) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        data[it.index] -= lb;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        } else {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        data[it.index] -= db;<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>                } else {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (useLong) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                it.setOutputDouble(false);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        } else {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                it.setOutputDouble(true);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                while (it.hasNext()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        data[it.aIndex] -= it.bDouble;<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>                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                return this;<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>        @Override<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        public IntegerDataset imultiply(final Object b) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                setDirty();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (bds.getSize() == 1) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        final IndexIterator it = getIterator();<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        if (useLong) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                while (it.hasNext()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        data[it.index] *= lb;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        } else {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                while (it.hasNext()) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        data[it.index] *= db;<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>                } else {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        it.setOutputDouble(!useLong);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        if (useLong) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                while (it.hasNext()) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        } else {<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.bDouble;<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>                }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                return this;<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>        @Override<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        public IntegerDataset idivide(final Object b) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                setDirty();<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                if (bds.getSize() == 1) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (useLong) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                if (lb == 0) { // INT_USE<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        fill(0); // INT_USE<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                } else { // INT_USE<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                final IndexIterator it = getIterator();<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                while (it.hasNext()) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        data[it.index] /= lb;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                if (db == 0) { // INT_USE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        fill(0); // INT_USE<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } else { // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                final IndexIterator it = getIterator();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        data[it.index] /= db;<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        it.setOutputDouble(!useLong);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (useLong) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        } else { // INT_USE<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        } else {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        } else { // INT_USE<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        } // INT_USE<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>                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                return this;<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>        @Override<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        public IntegerDataset ifloor() {<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 iremainder(final Object b) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                setDirty();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                if (bds.getSize() == 1) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (useLong) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                if (lb == 0) { // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        fill(0); // INT_USE<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                } else { // INT_USE<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                final IndexIterator it = getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                while (it.hasNext()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        data[it.index] %= lb;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                } // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        } else {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                if (lb == 0) { // INT_USE<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        fill(0); // INT_USE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                } else { // INT_USE<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final IndexIterator it = getIterator();<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                while (it.hasNext()) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.index] %= lb;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                } // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                } else {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        it.setOutputDouble(!useLong);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        if (useLong) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                while (it.hasNext()) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                try {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                } catch (ArithmeticException e) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.aIndex] = 0;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                while (it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                data[it.aIndex] %= it.bDouble; // INT_EXCEPTION<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } catch (ArithmeticException e) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        data[it.aIndex] = 0;<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>                        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return this;<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>        @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        public IntegerDataset ipower(final Object b) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                setDirty();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (bds.getSize() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        final IndexIterator it = getIterator();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (bds.isComplex()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                if (vi == 0) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                        while (it.hasNext()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                } else { // INT_USE<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                } // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                } else {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        while (it.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                } else { // INT_USE<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                } // INT_USE<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>                        } else {// NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                while (it.hasNext()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = 0; // INT_USE<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        } else { // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        } // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                } else {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        if (bds.isComplex()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                while (it.hasNext()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        } else { // INT_USE<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        } // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        } else {// NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                while (it.hasNext()) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        } else { // INT_USE<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } // INT_USE<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>                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                return this;<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>        @Override<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                it.setOutputDouble(true);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                double sum = 0;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                double comp = 0;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        if (w == null) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                while (it.hasNext()) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        final double err = diff * diff - comp;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        final double temp = sum + err;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        comp = (temp - sum) - err;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        sum = temp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        } else {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                IndexIterator itw = w.getIterator();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final double temp = sum + err;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        comp = (temp - sum) - err;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        sum = temp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                }<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>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..05a1ee9
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegerIterator.html
@@ -0,0 +1,140 @@
+<!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>                        return true;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                }<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return false;<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 int[] getPos() {<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>        @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public void reset() {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                iter.reset();<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..1e78638
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/IntegersIterator.html
@@ -0,0 +1,334 @@
+<!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.min().intValue() &lt; 0 || ind.max().intValue() &gt;= shape[i]) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        throw new IllegalArgumentException("A value in index datasets is outside permitted range");<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>                ipos = new int[irank];<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                it = new PositionIterator(oshape);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                opos = it.getPos();<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[] getShape() {<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>        @Override<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        public boolean hasNext() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (it.hasNext()) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        int i = 0;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        for (; i &lt; offset; i++) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                Object obj = indexes.get(i);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                if (obj == null) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                        ipos[i] = opos[i];<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                } else if (obj instanceof Slice) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                        Slice s = (Slice) obj;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                        ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                } else {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                        throw new IllegalStateException("Bad state: index dataset before offset");<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[] spos = srank &gt; 0 ? Arrays.copyOfRange(opos, i, i+srank) : opos;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        if (spos == opos) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                for (; i &lt; irank; i++) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                        Object obj = indexes.get(i);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                        if (obj == null) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                                ipos[i] = opos[i];<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                        } else if (obj instanceof Slice) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                Slice s = (Slice) obj;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        } else if (obj instanceof IntegerDataset) { // allowed when restricted to 1D<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                ipos[i] = ((Dataset) obj).getInt(opos[i]);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                        } else {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<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>                        } else {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                for (int j = 0; j &lt; irank; j++) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                        Object obj = indexes.get(j);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                        if (obj instanceof IntegerDataset) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                                ipos[i++] = ind.size &gt; 1 ? ind.get(spos) : ind.getAbs(0); // broadcasting<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>                                int o = orank - irank;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                for (; i &lt; irank; i++) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                        Object obj = indexes.get(i);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        if (obj == null) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                                ipos[i] = opos[i+o];<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                        } else if (obj instanceof Slice) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                                Slice s = (Slice) obj;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                                ipos[i] = s.getPosition(opos[i+o]); // overwrite position<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                        } else {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<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>                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>//                      System.err.println(Arrays.toString(opos) + ", " + Arrays.toString(spos) + ", " + Arrays.toString(ipos));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        return true;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return false;<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 int[] getPos() {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                return ipos;<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 void reset() {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                it.reset();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                Arrays.fill(ipos, 0);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                index = 0;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..096c3cf
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
@@ -0,0 +1,617 @@
+<!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>import org.apache.commons.lang.ArrayUtils;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>class InterpolatedPoint {<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        Dataset realPoint;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        Dataset coordPoint;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public InterpolatedPoint(Dataset realPoint, Dataset coordPoint) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                this.realPoint = realPoint;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                this.coordPoint = coordPoint;<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 Dataset getRealPoint() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                return realPoint;<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 Dataset getCoordPoint() {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                return coordPoint;<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>        @Override<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public String toString() {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                String realString = "[ " + realPoint.getDouble(0);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                for(int i = 1; i &lt; realPoint.getShapeRef()[0]; i++) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        realString += " , " + realPoint.getDouble(i);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                }<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                realString += " ]";<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                <a name="line.46"></a>
+<span class="sourceLineNo">047</span>                String coordString = "[ " + coordPoint.getDouble(0);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                for(int i = 1; i &lt; coordPoint.getShapeRef()[0]; i++) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        coordString += " , " + coordPoint.getDouble(i) ;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                coordString += " ]";<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                <a name="line.52"></a>
+<span class="sourceLineNo">053</span>                return realString + " : " + coordString;<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><a name="line.57"></a>
+<span class="sourceLineNo">058</span>public class InterpolatorUtils {<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public static Dataset regridOld(Dataset data, Dataset x, Dataset y,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        Dataset gridX, Dataset gridY) throws Exception {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                <a name="line.62"></a>
+<span class="sourceLineNo">063</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, gridX.getShapeRef()[0], gridY.getShapeRef()[0]);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                <a name="line.64"></a>
+<span class="sourceLineNo">065</span>                IndexIterator itx = gridX.getIterator();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                <a name="line.66"></a>
+<span class="sourceLineNo">067</span>                // need a list of lists to store points<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt; pointList = new ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt;();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                <a name="line.69"></a>
+<span class="sourceLineNo">070</span>                while(itx.hasNext()){<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        // Add a list to contain all the points which we find<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        pointList.add(new ArrayList&lt;InterpolatedPoint&gt;());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        <a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        int xindex = itx.index;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        double xPos = gridX.getDouble(xindex);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        <a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        IndexIterator ity = gridY.getIterator();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        while(ity.hasNext()){<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                int yindex = ity.index;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                System.out.println("Testing : "+xindex+","+yindex);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                double yPos = gridX.getDouble(yindex);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                result.set(getInterpolated(data, x, y, xPos, yPos), yindex, xindex);<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>                return result;<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>        <a name="line.90"></a>
+<span class="sourceLineNo">091</span>        <a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public static Dataset selectDatasetRegion(Dataset dataset, int x, int y, int xSize, int ySize) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                int startX = x - xSize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int startY = y - ySize;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int endX = x + xSize + 1;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                int endY = y + ySize +1;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                <a name="line.97"></a>
+<span class="sourceLineNo">098</span>                int shapeX = dataset.getShapeRef()[0];<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                int shapeY = dataset.getShapeRef()[1];<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                <a name="line.100"></a>
+<span class="sourceLineNo">101</span>                // Do edge checking<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                if (startX &lt; 0) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        startX = 0;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        endX = 3;<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>                if (endX &gt; shapeX) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        endX = shapeX;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        startX = endX-3;<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>                if (startY &lt; 0) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        startY = 0;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        endY = 3;<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 (endY &gt; shapeY) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        endY = shapeY;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        startY = endY-3;<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>                int[] start = new int[] { startX, startY };<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                int[] stop = new int[] { endX, endY };<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>                return dataset.getSlice(start, stop, null);<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>        private static double getInterpolated(Dataset val, Dataset x, Dataset y, double xPos,<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        double yPos) throws Exception {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                <a name="line.131"></a>
+<span class="sourceLineNo">132</span>                // initial guess<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                Dataset xPosDS = x.getSlice(new int[] {0,0}, new int[] {x.getShapeRef()[0],1}, null).isubtract(xPos);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int xPosMin = xPosDS.minPos()[0];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                Dataset yPosDS = y.getSlice(new int[] {xPosMin,0}, new int[] {xPosMin+1,y.getShapeRef()[1]}, null).isubtract(yPos);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                int yPosMin = yPosDS.minPos()[0];<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>                // now search around there 5x5<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                <a name="line.140"></a>
+<span class="sourceLineNo">141</span>                Dataset xClipped = selectDatasetRegion(x,xPosMin,yPosMin,2,2);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                Dataset yClipped = selectDatasetRegion(y,xPosMin,yPosMin,2,2);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                <a name="line.143"></a>
+<span class="sourceLineNo">144</span>                // first find the point in the arrays nearest to the point<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                Dataset xSquare = Maths.subtract(xClipped, xPos).ipower(2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                Dataset ySquare = Maths.subtract(yClipped, yPos).ipower(2);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                Dataset total = Maths.add(xSquare, ySquare);<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                int[] pos = total.minPos();<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                // now pull out the region around that point, as a 3x3 grid     <a name="line.152"></a>
+<span class="sourceLineNo">153</span>                Dataset xReduced = selectDatasetRegion(x, pos[0], pos[1], 1, 1);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                Dataset yReduced = selectDatasetRegion(y, pos[0], pos[1], 1, 1);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                Dataset valReduced = selectDatasetRegion(val, pos[0], pos[1], 1, 1);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return getInterpolatedResultFromNinePoints(valReduced, xReduced, yReduced, xPos, yPos);<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>        private static double getInterpolatedResultFromNinePoints(Dataset val, Dataset x, Dataset y,<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        double xPos, double yPos) throws Exception {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                <a name="line.162"></a>
+<span class="sourceLineNo">163</span>                // First build the nine points<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                InterpolatedPoint p00 = makePoint(x, y, 0, 0);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                InterpolatedPoint p01 = makePoint(x, y, 0, 1);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                InterpolatedPoint p02 = makePoint(x, y, 0, 2);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                InterpolatedPoint p10 = makePoint(x, y, 1, 0);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                InterpolatedPoint p11 = makePoint(x, y, 1, 1);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                InterpolatedPoint p12 = makePoint(x, y, 1, 2);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                InterpolatedPoint p20 = makePoint(x, y, 2, 0);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                InterpolatedPoint p21 = makePoint(x, y, 2, 1);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                InterpolatedPoint p22 = makePoint(x, y, 2, 2);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                // now try every connection and find points that intersect with the interpolated value<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                ArrayList&lt;InterpolatedPoint&gt; points = new ArrayList&lt;InterpolatedPoint&gt;();<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                InterpolatedPoint A = get1DInterpolatedPoint(p00, p10, 0, xPos);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                InterpolatedPoint B = get1DInterpolatedPoint(p10, p20, 0, xPos);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                InterpolatedPoint C = get1DInterpolatedPoint(p00, p01, 0, xPos);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                InterpolatedPoint D = get1DInterpolatedPoint(p10, p11, 0, xPos);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                InterpolatedPoint E = get1DInterpolatedPoint(p20, p21, 0, xPos);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                InterpolatedPoint F = get1DInterpolatedPoint(p01, p11, 0, xPos);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                InterpolatedPoint G = get1DInterpolatedPoint(p11, p21, 0, xPos);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                InterpolatedPoint H = get1DInterpolatedPoint(p01, p02, 0, xPos);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                InterpolatedPoint I = get1DInterpolatedPoint(p11, p12, 0, xPos);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                InterpolatedPoint J = get1DInterpolatedPoint(p21, p22, 0, xPos);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                InterpolatedPoint K = get1DInterpolatedPoint(p02, p12, 0, xPos);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                InterpolatedPoint L = get1DInterpolatedPoint(p12, p22, 0, xPos);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>                // Now add any to the list which are not null<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                if (A != null)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        points.add(A);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                if (B != null)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        points.add(B);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                if (C != null)<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        points.add(C);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (D != null)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        points.add(D);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (E != null)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        points.add(E);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (F != null)<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        points.add(F);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                if (G != null)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        points.add(G);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                if (H != null)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        points.add(H);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                if (I != null)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        points.add(I);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (J != null)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        points.add(J);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                if (K != null)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        points.add(K);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                if (L != null)<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        points.add(L);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>                // if no intercepts, then retun NaN;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                if (points.size() == 0) return Double.NaN;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                <a name="line.218"></a>
+<span class="sourceLineNo">219</span>                InterpolatedPoint bestPoint = null;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                // sort the points by y<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                Collections.sort(points, new Comparator&lt;InterpolatedPoint&gt;() {<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 int compare(InterpolatedPoint o1, InterpolatedPoint o2) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                return (int) Math.signum(o1.realPoint.getDouble(1) - o2.realPoint.getDouble(1));<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>                <a name="line.229"></a>
+<span class="sourceLineNo">230</span>                <a name="line.230"></a>
+<span class="sourceLineNo">231</span>                // now we have all the points which fit the x criteria, Find the points which fit the y<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                for (int a = 1; a &lt; points.size(); a++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        InterpolatedPoint testPoint = get1DInterpolatedPoint(points.get(a - 1), points.get(a), 1, yPos);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        if (testPoint != null) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                bestPoint = testPoint;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                break;<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><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                if (bestPoint == null) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        return Double.NaN;<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>                // now we have the best point, we can calculate the weights, and positions<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                int xs = (int) Math.floor(bestPoint.getCoordPoint().getDouble(0));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                int ys = (int) Math.floor(bestPoint.getCoordPoint().getDouble(1));<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                <a name="line.247"></a>
+<span class="sourceLineNo">248</span>                double xoff = bestPoint.getCoordPoint().getDouble(0) - xs;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                double yoff = bestPoint.getCoordPoint().getDouble(1) - ys;<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>                // check corner cases<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (xs == 2) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        xs = 1;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        xoff = 1.0;<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>                if (ys == 2) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        ys = 1;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        yoff = 1.0;<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>                double w00 = (1 - xoff) * (1 - yoff);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                double w10 = (xoff) * (1 - yoff);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                double w01 = (1 - xoff) * (yoff);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                double w11 = (xoff) * (yoff);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                <a name="line.266"></a>
+<span class="sourceLineNo">267</span>                // now using the weights, we can get the final interpolated value<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                double result = val.getDouble(xs, ys) * w00;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                result += val.getDouble(xs + 1, ys) * w10;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                result += val.getDouble(xs, ys + 1) * w01;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                result += val.getDouble(xs + 1, ys + 1) * w11;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                <a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return result;<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>        private static InterpolatedPoint makePoint(Dataset x, Dataset y, int i, int j) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                Dataset realPoint = DatasetFactory.createFromObject(new double[] { x.getDouble(i, j), y.getDouble(i, j) });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                Dataset coordPoint = DatasetFactory.createFromObject(new double[] { i, j });<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                return new InterpolatedPoint(realPoint, coordPoint);<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>         * Gets an interpolated position when only dealing with 1 dimension for the interpolation.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * <a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param p1<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *            Point 1<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param p2<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            Point 2<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param interpolationDimension<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            The dimension in which the interpolation should be carried out<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param interpolatedValue<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         *            The value at which the interpolated point should be at in the chosen dimension<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @return the new interpolated point.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * @throws IllegalArgumentException<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         */<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        private static InterpolatedPoint get1DInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2,<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        int interpolationDimension, double interpolatedValue) throws IllegalArgumentException {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                <a name="line.298"></a>
+<span class="sourceLineNo">299</span>                checkPoints(p1, p2);<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (interpolationDimension &gt;= p1.getRealPoint().getShapeRef()[0]) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        throw new IllegalArgumentException("Dimention is too large for these datasets");<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>                double p1_n = p1.getRealPoint().getDouble(interpolationDimension);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                double p2_n = p2.getRealPoint().getDouble(interpolationDimension);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                double max = Math.max(p1_n, p2_n);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                double min = Math.min(p1_n, p2_n);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                <a name="line.309"></a>
+<span class="sourceLineNo">310</span>                if (interpolatedValue &lt; min || interpolatedValue &gt; max || min==max) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        return null;<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>                double proportion = (interpolatedValue - min) / (max - min);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                <a name="line.315"></a>
+<span class="sourceLineNo">316</span>                return getInterpolatedPoint(p1, p2, proportion);<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>         * Gets an interpolated point between 2 points given a certain proportion<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * <a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @param p1<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         *            the initial point<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @param p2<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         *            the final point<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @param proportion<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         *            how far the new point is along the path between P1(0.0) and P2(1.0)<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @return a new point which is the interpolated point<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        private static InterpolatedPoint getInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2, double proportion) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>                checkPoints(p1, p2);<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>                if (proportion &lt; 0 || proportion &gt; 1.0) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        throw new IllegalArgumentException("Proportion must be between 0 and 1");<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>                Dataset p1RealContribution = Maths.multiply(p1.getRealPoint(), (1.0 - proportion));<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                Dataset p2RealContribution = Maths.multiply(p2.getRealPoint(), (proportion));<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>                Dataset realPoint = Maths.add(p1RealContribution, p2RealContribution);<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>                Dataset p1CoordContribution = Maths.multiply(p1.getCoordPoint(), (1.0 - proportion));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                Dataset p2CoordContribution = Maths.multiply(p2.getCoordPoint(), (proportion));<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                Dataset coordPoint = Maths.add(p1CoordContribution, p2CoordContribution);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                return new InterpolatedPoint(realPoint, coordPoint);<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>         * Checks to see if 2 points have the same dimensionality<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * <a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @param p1<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         *            Point 1<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         * @param p2<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         *            Point 2<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * @throws IllegalArgumentException<a name="line.358"></a>
+<span class="sourceLineNo">359</span>         */<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        private static void checkPoints(InterpolatedPoint p1, InterpolatedPoint p2) throws IllegalArgumentException {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                if (!p1.getCoordPoint().isCompatibleWith(p2.getCoordPoint())) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        throw new IllegalArgumentException("Datasets do not match");<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>        <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>        private static Dataset getTrimmedAxis(Dataset axis, int axisIndex, InterpolatedPoint p1, InterpolatedPoint p2) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                double startPoint = p1.getRealPoint().getDouble(axisIndex);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                double endPoint = p2.getRealPoint().getDouble(axisIndex);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                <a name="line.374"></a>
+<span class="sourceLineNo">375</span>                // swap if needed<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                if (startPoint &gt; endPoint) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        startPoint = p2.getRealPoint().getDouble(axisIndex);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        endPoint = p1.getRealPoint().getDouble(axisIndex);<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>                int start = getTrimmedAxisStart(axis, startPoint);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                int end = getTrimmedAxisEnd(axis, start, endPoint);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                <a name="line.383"></a>
+<span class="sourceLineNo">384</span>                return axis.getSlice(new int[] {start}, new int[] {end}, null);<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>        private static int getTrimmedAxisStart(Dataset axis, double startPoint) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                for (int i = 0; i &lt; axis.getShapeRef()[0]; i++) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        if (axis.getDouble(i) &gt; startPoint) return i;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                // if we get to here then the start point is higher than the whole system<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return -1;<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>        private static int getTrimmedAxisEnd(Dataset axis, int startPos, double endPoint) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                for (int i = startPos; i &lt; axis.getShapeRef()[0]; i++) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        if (axis.getDouble(i) &gt; endPoint) return i-1;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                // if we get to here then the end point is higher than the whole system<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return axis.getShapeRef()[0];<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>        public static Dataset remap1D(Dataset dataset, Dataset axis, Dataset outputAxis) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                Dataset data = DatasetFactory.zeros(DoubleDataset.class, outputAxis.getShapeRef());<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                for(int i = 0; i &lt; outputAxis.getShapeRef()[0]; i++) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                        double point = outputAxis.getDouble(i);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        double position = getRealPositionAsIndex(axis, point);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        if (position &gt;= 0.0) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                data.set(Maths.interpolate(dataset, position), i);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        } else {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                data.set(Double.NaN,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>                <a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return data;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        // TODO need to make this work with reverse number lists<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        private static double getRealPositionAsIndex(Dataset dataset, double point) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                for (int j = 0; j &lt; dataset.getShapeRef()[0]-1; j++) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        double end = dataset.getDouble(j+1);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        double start = dataset.getDouble(j);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        //TODO could make this check once outside the loop with a minor assumption.<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        if ( start &lt; end) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                if ((end &gt; point) &amp;&amp; (start &lt;= point)) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                        // we have a bounding point<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        double proportion = ((point-start)/(end-start));<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                        return j + proportion;<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 ((end &lt; point) &amp;&amp; (start &gt;= point)) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                        // we have a bounding point<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                        double proportion = ((point-start)/(end-start));<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        return j + proportion;<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 -1.0;<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>        public static Dataset remapOneAxis(Dataset dataset, int axisIndex, Dataset corrections,<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                int[] stop = dataset.getShape();<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                int[] start = new int[stop.length];<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                int[] step = new int[stop.length];<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                int[] resultSize = new int[stop.length];<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        start[i] = 0;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        step[i] = 1;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        resultSize[i] = stop[i];<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                }<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                <a name="line.452"></a>
+<span class="sourceLineNo">453</span>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                <a name="line.455"></a>
+<span class="sourceLineNo">456</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                <a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int[] pos = iter.getPos();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int[] posEnd = new int[pos.length];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                while (iter.hasNext()){<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                posEnd[i] = pos[i]+1;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        // get the dataset<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        int[] correctionPos = new int[pos.length-1];<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        int index = 0;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        for(int j = 0; j &lt; pos.length; j++) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                if (j != axisIndex) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                        correctionPos[index] = pos[j];<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                        index++;<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>                        Dataset axis = Maths.subtract(originalAxisForCorrection,corrections.getDouble(correctionPos));<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        <a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        int[] ref = ArrayUtils.clone(pos);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        <a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        for (int k = 0; k &lt; result.getShapeRef()[axisIndex]; k++) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                ref[axisIndex] = k;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                result.set(remapped.getDouble(k), ref);<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>                <a name="line.486"></a>
+<span class="sourceLineNo">487</span>                return result;<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>        public static Dataset remapAxis(Dataset dataset, int axisIndex, Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                if (!dataset.isCompatibleWith(originalAxisForCorrection)) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        throw new IllegalArgumentException("Datasets must be of the same shape");<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>                int[] stop = dataset.getShapeRef();<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                int[] start = new int[stop.length];<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                int[] step = new int[stop.length];<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                int[] resultSize = new int[stop.length];<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        start[i] = 0;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        step[i] = 1;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        resultSize[i] = stop[i];<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>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                <a name="line.508"></a>
+<span class="sourceLineNo">509</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                <a name="line.511"></a>
+<span class="sourceLineNo">512</span>                int[] pos = iter.getPos();<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                int[] posEnd = new int[pos.length];<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                while (iter.hasNext()){<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                posEnd[i] = pos[i]+1;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        <a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        // get the dataset<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        Dataset axis = originalAxisForCorrection.getSlice(pos, posEnd, null).squeeze();<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        <a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        <a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        int[] ref = ArrayUtils.clone(pos);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        <a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        for (int k = 0; k &lt; result.shape[axisIndex]; k++) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                ref[axisIndex] = k;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                result.set(remapped.getDouble(k), ref);<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>                <a name="line.533"></a>
+<span class="sourceLineNo">534</span>                return result;<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 static Dataset regrid(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                <a name="line.538"></a>
+<span class="sourceLineNo">539</span>                // apply X then Y regridding<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                Dataset result = remapAxis(data,1,x,gridX);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                result = remapAxis(result,0,y,gridY);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                <a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return result;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..323e2e9
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..7b8e7f5
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,1154 @@
+<!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>                catchExceptions = Boolean.getBoolean("run.in.eclipse");<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>        protected String name = "";<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>         * The shape or dimensions of the dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        protected int[] shape;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        protected ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; metadata = null;<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>         * @return type of dataset item<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        abstract public int getDType();<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 Class&lt;?&gt; getElementClass() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return DTypeUtils.getElementClass(getDType());<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 LazyDatasetBase clone() {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                return null;<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>        @Override<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public boolean equals(Object obj) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                if (this == obj) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return true;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                if (obj == null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return false;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (!getClass().equals(obj.getClass())) {<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>                LazyDatasetBase other = (LazyDatasetBase) obj;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                if (getDType() != other.getDType()) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        return false;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (getElementsPerItem() != other.getElementsPerItem()) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        return false;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                if (!Arrays.equals(shape, other.shape)) {<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>                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>        @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public int hashCode() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                int hash = getDType() * 17 + getElementsPerItem();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int rank = shape.length;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        hash = hash*17 + shape[i];<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                return hash;<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 String getName() {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                return name;<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 void setName(String name) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                this.name = name;<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 int[] getShape() {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                return shape.clone();<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 int getRank() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return shape.length;<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>         * Find first sub-interface of (or class that directly implements) MetadataType<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @param clazz<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @return sub-interface<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * @exception IllegalArgumentException when given class is {@link MetadataType} or an anonymous sub-class of it<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        @SuppressWarnings("unchecked")<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public static Class&lt;? extends MetadataType&gt; findMetadataTypeSubInterfaces(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (clazz.equals(MetadataType.class)) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("Cannot accept MetadataType");<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 (clazz.isInterface()) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        return clazz;<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>                if (clazz.isAnonymousClass()) { // special case<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        Class&lt;?&gt; s = clazz.getSuperclass();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        if (!s.equals(Object.class)) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                // only use super class if it is not an anonymous class of an interface<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                clazz = (Class&lt;? extends MetadataType&gt;) s;<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>                for (Class&lt;?&gt; c : clazz.getInterfaces()) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        if (c.equals(MetadataType.class)) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                                if (clazz.isAnonymousClass()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                        throw new IllegalArgumentException("Cannot accept anonymous subclasses of MetadataType");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                return clazz;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (MetadataType.class.isAssignableFrom(c)) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                return (Class&lt;? extends MetadataType&gt;) c;<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>                Class&lt;?&gt; c = clazz.getSuperclass(); // Naughty: someone has sub-classed a metadata class<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                if (c != null) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        return findMetadataTypeSubInterfaces((Class&lt;? extends MetadataType&gt;) c);<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>                logger.error("Somehow the search for metadata type interface ended in a bad place");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                assert false; // should not be able to get here!!!<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return null;<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 setMetadata(MetadataType metadata) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                addMetadata(metadata, true);<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>        @Override<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public void addMetadata(MetadataType metadata) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                addMetadata(metadata, false);<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>        private synchronized void addMetadata(MetadataType metadata, boolean clear) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                if (metadata == null)<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        return;<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (this.metadata == null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        this.metadata = 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><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                Class&lt;? extends MetadataType&gt; clazz = findMetadataTypeSubInterfaces(metadata.getClass());<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                if (!this.metadata.containsKey(clazz)) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                } else if (clear) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        this.metadata.get(clazz).clear();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                this.metadata.get(clazz).add(metadata);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                // add for special case of sub-interfaces of IMetadata<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                if (!IMetadata.class.equals(clazz) &amp;&amp; IMetadata.class.isAssignableFrom(clazz)) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        clazz = IMetadata.class;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        if (!this.metadata.containsKey(clazz)) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        } else if (clear) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                this.metadata.get(clazz).clear();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        this.metadata.get(clazz).add(metadata);<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>        @Override<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        @Deprecated<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        public synchronized IMetadata getMetadata() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                return getFirstMetadata(IMetadata.class);<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>        @SuppressWarnings("unchecked")<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</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.229"></a>
+<span class="sourceLineNo">230</span>                if (metadata == null)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        return null;<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                if (clazz == null) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        List&lt;S&gt; all = new ArrayList&lt;S&gt;();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                all.addAll((Collection&lt;S&gt;) metadata.get(c));<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        return all;<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>                return (List&lt;S&gt;) metadata.get(findMetadataTypeSubInterfaces(clazz));<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 synchronized &lt;S extends MetadataType, T extends S&gt; S getFirstMetadata(Class&lt;T&gt; clazz) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                try {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        List&lt;S&gt; ml = getMetadata(clazz);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        if (ml == null) return null;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        for (S t : ml) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                if (clazz.isInstance(t)) return t;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                } catch (Exception e) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        logger.error("Get metadata failed!",e);<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 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>        @Override<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        public synchronized void clearMetadata(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                if (metadata == null)<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        return;<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>                if (clazz == null) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        metadata.clear();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        return;<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>                List&lt;MetadataType&gt; list = metadata.get(findMetadataTypeSubInterfaces(clazz));<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if( list != null) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        list.clear();<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><a name="line.274"></a>
+<span class="sourceLineNo">275</span>        /**<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         * @since 2.0<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         */<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        protected synchronized ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; copyMetadata() {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                return copyMetadata(metadata);<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>         * @since 2.0<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         */<a name="line.284"></a>
+<span class="sourceLineNo">285</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.285"></a>
+<span class="sourceLineNo">286</span>                if (metadata == null)<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                        return null;<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</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.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        List&lt;MetadataType&gt; l = metadata.get(c);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        List&lt;MetadataType&gt; nl = new ArrayList&lt;MetadataType&gt;(l.size());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        map.put(c, nl);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        for (MetadataType m : l) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                nl.add(m.clone());<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 map;<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>        interface MetadatasetAnnotationOperation {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                 * Process value of given field<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                 * &lt;p&gt;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                 * When the field is not a container then the returned value<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                 * may replace the old value<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                 * @param f given field<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                 * @param o value of field<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                 * @return transformed field<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                 */<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                Object processField(Field f, Object o);<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>                 * @return annotated class<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                 */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                Class&lt;? extends Annotation&gt; getAnnClass();<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>                 * @param axis<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                 * @return number of dimensions to insert or remove<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                 */<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int change(int axis);<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>                 * @return rank or -1 to match<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                 */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                int getNewRank();<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>                 * Run on given lazy dataset<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                 * @param lz<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                 * @return <a name="line.334"></a>
+<span class="sourceLineNo">335</span>                 */<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                ILazyDataset run(ILazyDataset lz);<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>        class MdsSlice implements MetadatasetAnnotationOperation {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                private boolean asView;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                private int[] start;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                private int[] stop;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                private int[] step;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                private int[] oShape;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                private long oSize;<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                public MdsSlice(boolean asView, final int[] start, final int[] stop, final int[] step, final int[] oShape) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        this.asView = asView;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        this.start = start;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        this.stop = stop;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        this.step = step;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        this.oShape = oShape;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        oSize = ShapeUtils.calcLongSize(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>                @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                public Object processField(Field field, Object o) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        return o;<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>                @Override<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        return Sliceable.class;<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 int change(int axis) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        return 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>                @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                public int getNewRank() {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        return -1;<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 ILazyDataset run(ILazyDataset lz) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        int rank = lz.getRank();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        if (start.length != rank) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                                throw new IllegalArgumentException("Slice dimensions do not match dataset!");<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>                        int[] shape = lz.getShape();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        int[] stt;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        int[] stp;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        int[] ste;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        if (lz.getSize() == oSize) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                stt = start;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                                stp = stop;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                ste = step;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        } else {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                stt = start.clone();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                stp = stop.clone();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                ste = step.clone();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                for (int i = 0; i &lt; rank; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                        if (shape[i] &gt;= oShape[i]) continue;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                        if (shape[i] == 1) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                                stt[i] = 0;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                                                stp[i] = 1;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                                ste[1] = 1;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                        } else {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                                                throw new IllegalArgumentException("Sliceable dataset has invalid size!");<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><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        if (asView || (lz instanceof IDataset))<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                return lz.getSliceView(stt, stp, ste);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        try {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                return lz.getSlice(stt, stp, ste);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        } catch (DatasetException e) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                                logger.error("Could not slice dataset in metadata", e);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                return null;<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>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        class MdsReshape implements MetadatasetAnnotationOperation {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                private boolean matchRank;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                private int[] oldShape;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                private int[] newShape;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                boolean onesOnly;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                int[] differences;<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>                 * if only ones then record differences (insertions and deletions)<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                 * <a name="line.427"></a>
+<span class="sourceLineNo">428</span>                 * if shape changing, find broadcasted dimensions and disallow<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                 * merging that include those dimensions<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                 */<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                public MdsReshape(final int[] oldShape, final int[] newShape) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        this.oldShape = oldShape;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        this.newShape = newShape;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                        differences = null;<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 Object processField(Field field, Object o) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        Annotation a = field.getAnnotation(Reshapeable.class);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        if (a != null) { // cannot be null<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                matchRank = ((Reshapeable) a).matchRank();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return o;<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 Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return Reshapeable.class;<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 int change(int axis) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        if (matchRank) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                if (differences == null)<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                        init();<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                if (onesOnly) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                        return differences[axis];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                throw new UnsupportedOperationException("TODO support other shape operations");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        }<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 getNewRank() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        return matchRank ? newShape.length : -1;<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>                private void init() {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        int or = oldShape.length - 1;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        int nr = newShape.length - 1;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        if (or &lt; 0 || nr &lt; 0) { // zero-rank shapes<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                                onesOnly = true;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                                differences = new int[1];<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                differences[0] = or &lt; 0 ? nr + 1 : or + 1;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                return;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        int ob = 0;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        int nb = 0;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        onesOnly = true;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        do {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                while (oldShape[ob] == 1 &amp;&amp; ob &lt; or) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                                        ob++; // next non-unit dimension<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                while (newShape[nb] == 1 &amp;&amp; nb &lt; nr) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                        nb++;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                if (oldShape[ob++] != newShape[nb++]) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                        onesOnly = false;<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>                        } while (ob &lt;= or &amp;&amp; nb &lt;= nr);<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        ob = 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        nb = 0;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        differences = new int[or + 2];<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        if (onesOnly) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                // work out unit dimensions removed from or add to old<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                int j = 0;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                do {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                        if (oldShape[ob] != 1 &amp;&amp; newShape[nb] != 1) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                                ob++;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                                nb++;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                        } else {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                                while (oldShape[ob] == 1 &amp;&amp; ob &lt; or) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                                        ob++;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                                        differences[j]--;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                                }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                                while (newShape[nb] == 1 &amp;&amp; nb &lt; nr) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                                        nb++;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                                                        differences[j]++;<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>                                        j++;<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                } while (ob &lt;= or &amp;&amp; nb &lt;= nr &amp;&amp; j &lt;= or);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                while (ob &lt;= or &amp;&amp; oldShape[ob] == 1) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                        ob++;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                        differences[j]--;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                                while (nb &lt;= nr &amp;&amp; newShape[nb] == 1) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                                        nb++;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                        differences[j]++;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                }<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        } else {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                if (matchRank) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                        logger.error("Combining dimensions is currently not supported");<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                        throw new IllegalArgumentException("Combining dimensions is currently not supported");<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                // work out mapping: contiguous dimensions can be grouped or split<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                while (ob &lt;= or &amp;&amp; nb &lt;= nr) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                        int ol = oldShape[ob];<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                        while (ol == 1 &amp;&amp; ol &lt;= or) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                                ob++;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                                ol = oldShape[ob];<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                        }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                        int oe = ob + 1;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                        int nl = newShape[nb];<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                        while (nl == 1 &amp;&amp; nl &lt;= nr) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                                nb++;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                                nl = newShape[nb];<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                        }<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                        int ne = nb + 1;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                        if (ol &lt; nl) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                                differences[ob] = 1;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                                        if (oe == (or + 1)) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                                                break;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                                        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                                        differences[oe] = 1;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                                        ol *= oldShape[oe++];<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                                } while (ol &lt; nl);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                                differences[oe - 1] = oe - ob; // signal end with difference<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                                if (nl != ol) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                                }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                        } else if (ol &gt; nl) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                                        if (ne == (nr + 1)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                                                break;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                                        }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                                        nl *= newShape[ne++];<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                                } while (nl &lt; ol);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                                if (nl != ol) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<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>                                        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                        ob = oe;<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                        nb = ne;<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>                }<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 ILazyDataset run(ILazyDataset lz) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        if (differences == null)<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                init();<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        int[] lshape = lz.getShape();<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        if (Arrays.equals(newShape, lshape)) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                return lz;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        int or = lz.getRank();<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        int nr = newShape.length;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        int[] nshape = new int[nr];<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        Arrays.fill(nshape, 1);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        if (onesOnly) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                // ignore omit removed dimensions<a name="line.593"></a>
+<span class="sourceLineNo">594</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.594"></a>
+<span class="sourceLineNo">595</span>                                        int c = differences[i];<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        if (c == 0) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                                nshape[di++] = lshape[si++];<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        } else if (c &gt; 0) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                                while (c-- &gt; 0 &amp;&amp; di &lt; nr) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                                        di++;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        } else if (c &lt; 0) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                                si -= c; // remove dimensions by skipping forward in source array<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                }<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        } else {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                boolean[] broadcast = new boolean[or];<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                for (int ob = 0; ob &lt; or; ob++) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                        broadcast[ob] = oldShape[ob] != 1 &amp;&amp; lshape[ob] == 1;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                int osize = lz.getSize();<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                // cannot do 3x5x... to 15x... if metadata is broadcasting (i.e. 1x5x...)<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                int ob = 0;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                int nsize = 1;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                for (int i = 0; i &lt; nr; i++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                        if (ob &lt; or &amp;&amp; broadcast[ob]) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                if (differences[ob] != 0) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                                        logger.error("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                                        throw new IllegalArgumentException("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                        } else {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                                nshape[i] = nsize &lt; osize ? newShape[i] : 1;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                        }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                        nsize *= nshape[i];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                        ob++;<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>                        ILazyDataset nlz = lz.getSliceView();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        if (lz instanceof Dataset) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                nlz = ((Dataset) lz).reshape(nshape);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        } else {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                nlz = lz.getSliceView();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                nlz.setShape(nshape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        return nlz;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<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>        class MdsTranspose implements MetadatasetAnnotationOperation {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                int[] map;<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>                public MdsTranspose(final int[] axesMap) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        map = axesMap;<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>                @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                @Override<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                public Object processField(Field f, Object o) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        // reorder arrays and lists according the axes map<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        if (o.getClass().isArray()) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                int l = Array.getLength(o);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                if (l == map.length) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                Array.set(narray, i, Array.get(o, map[i]));<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                Array.set(o, i, Array.get(narray, i));<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>                        } else if (o instanceof List&lt;?&gt;) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                List list = (List) o;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                int l = list.size();<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                if (l == map.length) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                                Array.set(narray, i, list.get(map[i]));<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        list.clear();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                list.add(Array.get(narray, i));<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>                        return o;<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>                @Override<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        return Transposable.class;<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 int change(int axis) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        return 0;<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>                @Override<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public int getNewRank() {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        return -1;<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>                @Override<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        return lz.getTransposedView(map);<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>        class MdsDirty implements MetadatasetAnnotationOperation {<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 Object processField(Field f, Object o) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        // throw exception if not boolean???<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        Class&lt;?&gt; t = f.getType();<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        if (t.equals(boolean.class) || t.equals(Boolean.class)) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                if (o.equals(false)) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                        o = true;<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>                        return o;<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>                @Override<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        return Dirtiable.class;<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>                @Override<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                public int change(int axis) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        return 0;<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 int getNewRank() {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        return -1;<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 ILazyDataset run(ILazyDataset lz) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        return lz;<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><a name="line.735"></a>
+<span class="sourceLineNo">736</span>        /**<a name="line.736"></a>
+<span class="sourceLineNo">737</span>         * Slice all datasets in metadata that are annotated by @Sliceable. Call this on the new sliced<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * dataset after cloning the metadata<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * @param asView if true then just a view<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @param slice<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         */<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        protected void sliceMetadata(boolean asView, final SliceND slice) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                processAnnotatedMetadata(new MdsSlice(asView, slice.getStart(), slice.getStop(), slice.getStep(), slice.getSourceShape()), true);<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>        /**<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         * Reshape all datasets in metadata that are annotated by @Reshapeable. Call this when squeezing<a name="line.747"></a>
+<span class="sourceLineNo">748</span>         * or setting the shape<a name="line.748"></a>
+<span class="sourceLineNo">749</span>         * <a name="line.749"></a>
+<span class="sourceLineNo">750</span>         * @param newShape<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         */<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        protected void reshapeMetadata(final int[] oldShape, final int[] newShape) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                processAnnotatedMetadata(new MdsReshape(oldShape, newShape), true);<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>        /**<a name="line.756"></a>
+<span class="sourceLineNo">757</span>         * Transpose all datasets in metadata that are annotated by @Transposable. Call this on the transposed<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         * dataset after cloning the metadata<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * @param axesMap<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         */<a name="line.760"></a>
+<span class="sourceLineNo">761</span>        protected void transposeMetadata(final int[] axesMap) {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                processAnnotatedMetadata(new MdsTranspose(axesMap), true);<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>        /**<a name="line.765"></a>
+<span class="sourceLineNo">766</span>         * Dirty metadata that are annotated by @Dirtiable. Call this when the dataset has been modified<a name="line.766"></a>
+<span class="sourceLineNo">767</span>         * @since 2.0<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         */<a name="line.768"></a>
+<span class="sourceLineNo">769</span>        protected void dirtyMetadata() {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                processAnnotatedMetadata(new MdsDirty(), true);<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>        @SuppressWarnings("unchecked")<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        private void processAnnotatedMetadata(MetadatasetAnnotationOperation op, boolean throwException) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                if (metadata == null)<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        return;<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        for (MetadataType m : metadata.get(c)) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                if (m == null)<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                        continue;<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                Class&lt;? extends MetadataType&gt; mc = m.getClass();<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                do { // iterate over super-classes<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        processClass(op, m, mc, throwException);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                        Class&lt;?&gt; sclazz = mc.getSuperclass();<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                        if (!MetadataType.class.isAssignableFrom(sclazz))<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                break;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                        mc = (Class&lt;? extends MetadataType&gt;) sclazz;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                } while (true);<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><a name="line.794"></a>
+<span class="sourceLineNo">795</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.795"></a>
+<span class="sourceLineNo">796</span>        private static void processClass(MetadatasetAnnotationOperation op, MetadataType m, Class&lt;? extends MetadataType&gt; mc, boolean throwException) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                for (Field f : mc.getDeclaredFields()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        if (!f.isAnnotationPresent(op.getAnnClass()))<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                continue;<a name="line.799"></a>
+<span class="sourceLineNo">800</span><a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        try {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                f.setAccessible(true);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                Object o = f.get(m);<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                if (o == null)<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        continue;<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                Object no = op.processField(f, o);<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                if (no != o) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        f.set(m, no);<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        continue;<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                Object r = null;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                if (o instanceof ILazyDataset) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                        try {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                                f.set(m, op.run((ILazyDataset) o));<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                        } catch (Exception e) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                                logger.error("Problem processing " + o, e);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                if (!catchExceptions)<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                                        throw e;<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                        }<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                } else if (o.getClass().isArray()) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        int l = Array.getLength(o);<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        if (l &lt;= 0)<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                                continue;<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                r = Array.get(o, i);<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                        int n = op.getNewRank();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                        if (r == null) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                                        f.set(m, Array.newInstance(o.getClass().getComponentType(), n &lt; 0 ? l : n));<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                                continue;<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        if (n &lt; 0)<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                                n = l;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        for (int i = 0, si = 0, di = 0; di &lt; n &amp;&amp; si &lt; l; i++) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                                int c = op.change(i);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                if (c == 0) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                                        Array.set(narray, di++, processObject(op, Array.get(o, si++)));<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                } else if (c &gt; 0) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                } else if (c &lt; 0) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                        si -= c; // remove dimensions by skipping forward in source array<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>                                        if (n == l) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                for (int i = 0; i &lt; l; i++) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                        Array.set(o, i, Array.get(narray, i));<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        } else {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                f.set(m, narray);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                } else if (o instanceof List&lt;?&gt;) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                        List list = (List) o;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        int l = list.size();<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                        if (l &lt;= 0)<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>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                                r = list.get(i);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        int n = op.getNewRank();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                        if (r == null) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                                        list.clear();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                                        for (int i = 0, imax = n &lt; 0 ? l : n; i &lt; imax; i++) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                                list.add(null);<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>                                                continue;<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>                                        if (n &lt; 0)<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                                n = l;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        for (int i = 0, si = 0, di = 0; i &lt; l &amp;&amp; si &lt; l; i++) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                                int c = op.change(i);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                                if (c == 0) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                                        Array.set(narray, di++, processObject(op, list.get(si++)));<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                                } else if (c &gt; 0) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                                } else if (c &lt; 0) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                        si -= c; // remove dimensions by skipping forward in source array<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>                                        list.clear();<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                        for (int i = 0; i &lt; n; i++) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                                list.add(Array.get(narray, i));<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                        }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                        Map map = (Map) o;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                        for (Object k : map.keySet()) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                map.put(k, processObject(op, map.get(k)));<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>                        } catch (Exception e) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                logger.error("Problem occurred when processing metadata of class {}: {}", mc.getCanonicalName(), e);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                if (throwException)<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                        throw new RuntimeException(e);<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>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        private static Object processObject(MetadatasetAnnotationOperation op, Object o) throws Exception {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                if (o == null)<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        return o;<a name="line.910"></a>
+<span class="sourceLineNo">911</span><a name="line.911"></a>
+<span class="sourceLineNo">912</span>                if (o instanceof ILazyDataset) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        try {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                return op.run((ILazyDataset) o);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        } catch (Exception e) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                logger.error("Problem processing " + o, e);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                if (!catchExceptions)<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                        throw e;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                } else if (o.getClass().isArray()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        int l = Array.getLength(o);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                Array.set(o, i, processObject(op, Array.get(o, i)));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                } else if (o instanceof List&lt;?&gt;) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        List list = (List) o;<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        for (int i = 0, imax = list.size(); i &lt; imax; i++) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                list.set(i, processObject(op, list.get(i)));<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        Map map = (Map) o;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        for (Object k : map.keySet()) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                map.put(k, processObject(op, map.get(k)));<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 o;<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>        protected void restoreMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; oldMetadata) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                for (Class&lt;? extends MetadataType&gt; mc : oldMetadata.keySet()) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        metadata.put(mc, oldMetadata.get(mc));<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><a name="line.944"></a>
+<span class="sourceLineNo">945</span>        @SuppressWarnings("deprecation")<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        protected ILazyDataset createFromSerializable(Serializable blob, boolean keepLazy) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                ILazyDataset d = null;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                if (blob instanceof ILazyDataset) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        d = (ILazyDataset) blob;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        if (d instanceof IDataset) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                Dataset ed = DatasetUtils.convertToDataset((IDataset) d);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                int is = ed.getElementsPerItem();<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                if (is != 1 &amp;&amp; is != getElementsPerItem()) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        throw new IllegalArgumentException("Dataset has incompatible number of elements with this dataset");<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                d = ed.cast(is == 1 ? Dataset.FLOAT64 : Dataset.ARRAYFLOAT64);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        } else if (!keepLazy) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                final int is = getElementsPerItem();<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                try {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        d = DatasetUtils.cast(d.getSlice(), is == 1 ? Dataset.FLOAT64 : Dataset.ARRAYFLOAT64);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                } catch (DatasetException e) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                        logger.error("Could not get data from lazy dataset", e);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                        return null;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                } else {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        final int is = getElementsPerItem();<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        if (is == 1) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                d = DatasetFactory.createFromObject(Dataset.FLOAT64, blob);<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        } else {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                try {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        d = DatasetFactory.createFromObject(is, Dataset.ARRAYFLOAT64, blob);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                } catch (IllegalArgumentException e) { // if only single value supplied try again<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        d = DatasetFactory.createFromObject(Dataset.FLOAT64, blob);<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>                        if (d.getSize() == getSize() &amp;&amp; !Arrays.equals(d.getShape(), shape)) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                d.setShape(shape.clone());<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>                List&lt;int[]&gt; s = BroadcastUtils.broadcastShapesToMax(shape, d.getShape());<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                d.setShape(s.get(0));<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                return d;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        }<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>        @Override<a name="line.987"></a>
+<span class="sourceLineNo">988</span>        public void setErrors(Serializable errors) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                if (shape == null) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        throw new IllegalArgumentException("Cannot set errors for null dataset");<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                if (errors == null) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        clearMetadata(ErrorMetadata.class);<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        return;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (errors == this) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        logger.warn("Ignoring setting error to itself as this will lead to infinite recursion");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        return;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                ILazyDataset errorData = createFromSerializable(errors, true);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span><a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                if (emd == null) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        try {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                setMetadata(emd);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        } catch (MetadataException me) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                logger.error("Could not create metadata", me);<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>                emd.setError(errorData);<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>        protected ErrorMetadata getErrorMetadata() {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                try {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        List&lt;ErrorMetadata&gt; el = getMetadata(ErrorMetadata.class);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        if (el != null &amp;&amp; !el.isEmpty()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                 return el.get(0);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                } catch (Exception e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                return null;<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>        @Override<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        public ILazyDataset getErrors() {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                return emd == null ? null : emd.getError();<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>        @Override<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        public boolean hasErrors() {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                return LazyDatasetBase.this.getErrors() != null;<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>        /**<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         * Check permutation axes<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>         * @param shape<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>         * @param axes<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * @return cleaned up axes or null if trivial<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         */<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        public static int[] checkPermutatedAxes(int[] shape, int... axes) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                int rank = shape.length;<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        <a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                if (axes == null || axes.length == 0) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        axes = new int[rank];<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                axes[i] = rank - 1 - i;<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><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                if (axes.length != rank) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                        logger.error("axis permutation has length {} that does not match dataset's rank {}", axes.length, rank);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        throw new IllegalArgumentException("axis permutation does not match shape of dataset");<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>                // check all permutation values are within bounds<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                for (int d : axes) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        if (d &lt; 0 || d &gt;= rank) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                logger.error("axis permutation contains element {} outside rank of dataset", d);<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                throw new IllegalArgumentException("axis permutation contains element outside rank of dataset");<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>        <a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                // check for a valid permutation (is this an unnecessary restriction?)<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                int[] perm = axes.clone();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                Arrays.sort(perm);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span><a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        if (perm[i] != i) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                logger.error("axis permutation is not valid: it does not contain complete set of axes");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                throw new IllegalArgumentException("axis permutation does not contain complete set of axes");   <a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        }<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>                if (Arrays.equals(axes, perm))<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        return null; // signal identity or trivial permutation<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                return axes;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..595e692
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..8cb4636
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,269 @@
+<!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>import org.eclipse.january.DatasetException;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.slf4j.Logger;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.slf4j.LoggerFactory;<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> * Mathematics class for lazy datasets<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public final class LazyMaths {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * Setup the logging facilities<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        protected static final Logger logger = LoggerFactory.getLogger(LazyMaths.class);<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>         * @param data<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param axis (can be negative)<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return sum along axis in lazy dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @throws DatasetException <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public static Dataset sum(final ILazyDataset data, int axis) throws DatasetException {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                if (data instanceof Dataset)<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        return ((Dataset) data).sum(axis);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                int[][] sliceInfo = new int[3][];<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                int[] shape = data.getShape();<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>                final int[] start = sliceInfo[0];<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                final int[] stop = sliceInfo[1];<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                final int[] step = sliceInfo[2];<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int length = shape[axis];<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>                for (int i = 0; i &lt; length; i++) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        start[axis] = i;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        stop[axis] = i + 1;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        result.iadd(data.getSlice(start, stop, step));<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>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return result;<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>         * @param data<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param ignoreAxes axes to ignore<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @return sum when given axes are ignored in lazy dataset<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @throws DatasetException <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @since 2.0<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public static Dataset sum(final ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                return sum(data, true, ignoreAxes);<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>        /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param data<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @param ignore if true, ignore the provided axes, otherwise use only the provided axes <a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @param axes axes to ignore or accept, depending on the preceding flag<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @return sum<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @throws DatasetException <a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @since 2.0<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public static Dataset sum(final ILazyDataset data, boolean ignore, int... axes) throws DatasetException {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                Arrays.sort(axes); // ensure they are properly sorted<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        <a name="line.81"></a>
+<span class="sourceLineNo">082</span>                ILazyDataset rv = data;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                <a name="line.83"></a>
+<span class="sourceLineNo">084</span>                if (ignore) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        List&lt;Integer&gt; goodAxes = new ArrayList&lt;Integer&gt;();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        for (int i = 0 ; i &lt; data.getRank() ; i++) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                boolean found = false;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                for (int j = 0 ; j &lt; axes.length ; j++) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                        if (i == axes[j]) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                                found = true;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                                break;<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 (!found)             <a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                        goodAxes.add(i);<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 ; i &lt; goodAxes.size() ; i++) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                rv = sum(rv, goodAxes.get(i) - i);<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>                        for (int i = 0 ; i &lt; axes.length ; i++) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                rv = sum(rv, axes[i] - i);<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 DatasetUtils.sliceAndConvertLazyDataset(rv);<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>         * @param data<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @param axis (can be negative)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @return product along axis in lazy dataset<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @throws DatasetException <a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static Dataset product(final ILazyDataset data, int axis) throws DatasetException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                int[][] sliceInfo = new int[3][];<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                int[] shape = data.getShape();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                result.fill(1);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>                final int[] start = sliceInfo[0];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                final int[] stop = sliceInfo[1];<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final int[] step = sliceInfo[2];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                final int length = shape[axis];<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>                for (int i = 0; i &lt; length; i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        start[axis] = i;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        stop[axis] = i + 1;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        result.imultiply(data.getSlice(start, stop, 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>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return result;<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>         * @param start<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param stop inclusive<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @param data<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @param ignoreAxes<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * @return mean when given axes are ignored in lazy dataset<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @throws DatasetException <a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public static Dataset mean(int start, int stop, ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                int[] shape = data.getShape();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                PositionIterator iter = new PositionIterator(shape, ignoreAxes);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                int[] pos = iter.getPos();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                boolean[] omit = iter.getOmit();<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                int rank = shape.length;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                int[] st = new int[rank];<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                Arrays.fill(st, 1);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                int[] end = new int[rank];<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>                RunningAverage av = null;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                int c = 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                while (iter.hasNext() &amp;&amp; c &lt; stop) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (c++ &lt; start) continue;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                end[i] = omit[i] ? shape[i] : pos[i] + 1;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        IDataset ds = data.getSlice(pos, end, st);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        if (av == null) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                av = new RunningAverage(ds);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                av.update(ds);<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  av != null ? av.getCurrentAverage().squeeze() : null;<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>        public static Dataset mean(ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return mean(0, Integer.MAX_VALUE -1 , data, ignoreAxes);<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>        @SuppressWarnings("deprecation")<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        private static Dataset prepareDataset(int axis, int[] shape, int[][] sliceInfo) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                int rank = shape.length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                if (axis &lt; 0)<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        axis += rank;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        logger.error("Axis argument is outside allowed range");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        throw new IllegalArgumentException("Axis argument is outside allowed range");<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>                sliceInfo[0] = new int[rank];<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                sliceInfo[1] = shape.clone();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                sliceInfo[2] = new int[rank];<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                Arrays.fill(sliceInfo[2], 1);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                final int[] nshape = shape.clone();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                nshape[axis] = 1;<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>                return DatasetFactory.zeros(nshape, Dataset.FLOAT64);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..a7182ec
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
@@ -0,0 +1,356 @@
+<!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>                        @SuppressWarnings("deprecation")<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        public void setSlice(IMonitor mon, IDataset data, SliceND slice) throws IOException {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                if (slice.isExpanded()) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                                        Dataset od = d;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                        d = DatasetFactory.zeros(slice.getSourceShape(), od.getDType());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                        d.setSlice(od, SliceND.createSlice(od, null, null));<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                d.setSlice(data, slice);<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><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        public int[] getChunking() {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                return chunks;<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 setChunking(int... chunks) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                this.chunks = chunks == null ? null : chunks.clone();<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 LazyWriteableDataset clone() {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                LazyWriteableDataset ret = new LazyWriteableDataset(new String(name), getDType(), getElementsPerItem(), <a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                oShape, maxShape, chunks, saver);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                ret.shape = shape;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                ret.size = size;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                ret.prepShape = prepShape;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                ret.postShape = postShape;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                ret.begSlice = begSlice;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                ret.delSlice = delSlice;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                ret.map = map;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                ret.base = base;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                ret.metadata = copyMetadata();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                ret.oMetadata = oMetadata;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                ret.eventDelegate = eventDelegate;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                return ret;<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 LazyWriteableDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return (LazyWriteableDataset) super.getSliceView(start, stop, step);<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 LazyWriteableDataset getSliceView(Slice... slice) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return (LazyWriteableDataset) super.getSliceView(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 LazyWriteableDataset getSliceView(SliceND slice) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return (LazyWriteableDataset) super.getSliceView(slice);<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 LazyWriteableDataset getTransposedView(int... axes) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return (LazyWriteableDataset) super.getTransposedView(axes);<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 void setWritingAsync(boolean async) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                writeAsync = async;<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>         * Set a slice of the dataset<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * <a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param data<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @param slice an n-D slice<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @throws DatasetException <a name="line.197"></a>
+<span class="sourceLineNo">198</span>         */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        public void setSlice(IDataset data, SliceND slice) throws DatasetException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                setSlice(null, data, slice);<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 setSlice(IMonitor monitor, IDataset data, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                internalSetSlice(monitor, writeAsync, data, new SliceND(shape, maxShape, start, stop, 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>        @Override<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public void setSlice(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                internalSetSlice(monitor, writeAsync, data, 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>        @Override<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        public void setSliceSync(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                internalSetSlice(monitor, false, data, slice);<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>        private void internalSetSlice(IMonitor monitor, final boolean async, IDataset data, SliceND slice) throws DatasetException {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                int[] dshape = data instanceof Dataset ? ((Dataset) data).getShapeRef() : data.getShape();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                if (dshape.length == 0) { // fix zero-rank case<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        dshape = new int[] {1}; // FIXME remove<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                // if necessary, reshape the input data according to the shape of the slice<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                if (!Arrays.equals(slice.getShape(), dshape)) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        data = data.getSliceView();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        data.setShape(slice.getShape());<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>                SliceND nslice = calcTrueSlice(slice);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                data = transformInput(data);<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>                if (base != null) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        ((ILazyWriteableDataset) base).setSlice(monitor, data, nslice);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                } else {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        if (saver == null) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                throw new DatasetException("Cannot write to file as saver not defined!");<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>                        try {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                if (async &amp;&amp; saver instanceof ILazyAsyncSaver) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        ((ILazyAsyncSaver)saver).setSliceAsync(monitor, data, nslice);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                } else {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        if (!saver.isFileWriteable()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                                throw new DatasetException("Cannot write to file as it is not writeable!");<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                        }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        saver.setSlice(monitor, data, nslice);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        } catch (IOException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                throw new DatasetException("Could not save dataset", e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        if (!refreshShape()) { // send event as data has changed<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                eventDelegate.fire(new DataEvent(name, shape));<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>        /**<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * Set saver (and also loader)<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @param saver<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 void setSaver(ILazySaver saver) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                this.saver = saver;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                this.loader = saver;<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>        protected SliceND createSlice(int[] nstart, int[] nstop, int[] nstep) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                if (base == null) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        return new SliceND(oShape, maxShape, nstart, nstop, nstep);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return base.createSlice(nstart, nstop, nstep);<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 Object getFillValue() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                return fillValue;<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 void setFillValue(Object fill) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                fillValue = fill;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..4972b0d
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
@@ -0,0 +1,1365 @@
+<!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 = axisa;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                if (aaxis &lt; 0)<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        aaxis += arank;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                if (aaxis &lt; 0 || aaxis &gt;= arank)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        throw new IllegalArgumentException("Summing axis outside valid rank of 1st dataset");<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                int baxis = axisb;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                if (baxis &lt; 0)<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        baxis += arank;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (baxis &lt; 0 || baxis &gt;= arank)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        throw new IllegalArgumentException("Summing axis outside valid rank of 2nd dataset");<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] achoice = new boolean[arank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                final boolean[] bchoice = new boolean[brank];<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                Arrays.fill(achoice, true);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                Arrays.fill(bchoice, true);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                bchoice[baxis] = false;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                final boolean[] notachoice = new boolean[arank];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                notbchoice[baxis] = true;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                int drank = arank + brank - 2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                int[] dshape = new int[drank];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                int d = 0;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (achoice[i])<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                dshape[d++] = ashape[i];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        if (bchoice[i])<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                dshape[d++] = bshape[i];<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                @SuppressWarnings("deprecation")<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int l = 0;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                final int[] apos = ita.getPos();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                while (ita.hasNext()) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        final int[] bpos = itb.getPos();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        while (itb.hasNext()) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                double sum = 0.0;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                double com = 0.0;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        final double t = sum + y;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        com = (t - sum) - y;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        sum = t;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                data.setObjectAbs(l++, sum);<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 data;<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>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * from the given axes in each dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param a<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param b<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @return tensor dot product<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (axisa.length != axisb.length) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                final int[] ashape = a.getShapeRef();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                final int[] bshape = b.getShapeRef();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                final int arank = ashape.length;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                final int brank = bshape.length;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                final int[] aaxes = new int[axisa.length];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                final int[] baxes = new int[axisa.length];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        int n;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        n = axisa[i];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        if (n &lt; 0) n += arank;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        if (n &lt; 0 || n &gt;= arank)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                throw new IllegalArgumentException("Summing axis outside valid rank of 1st dataset");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        aaxes[i] = n;<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        n = axisb[i];<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        if (n &lt; 0) n += brank;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        if (n &lt; 0 || n &gt;= brank)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                throw new IllegalArgumentException("Summing axis outside valid rank of 2nd dataset");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        baxes[i] = n;<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (ashape[aaxes[i]] != bshape[n])<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<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>                final boolean[] achoice = new boolean[arank];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                final boolean[] bchoice = new boolean[brank];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                Arrays.fill(achoice, true);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                Arrays.fill(bchoice, true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        achoice[aaxes[i]] = false;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        bchoice[baxes[i]] = false;<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>                int drank = arank + brank - 2*aaxes.length;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                int[] dshape = new int[drank];<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                int d = 0;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        if (achoice[i])<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                dshape[d++] = ashape[i];<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (bchoice[i])<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                dshape[d++] = bshape[i];<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                @SuppressWarnings("deprecation")<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                int l = 0;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                final int[] apos = ita.getPos();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                while (ita.hasNext()) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        final int[] bpos = itb.getPos();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        while (itb.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                double sum = 0.0;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                double com = 0.0;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                while (true) { // step through summing axes<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        int e = aaxes.length - 1;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        for (; e &gt;= 0; e--) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                                int ai = aaxes[e];<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                                                int bi = baxes[e];<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                                apos[ai]++;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                                bpos[bi]++;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                                        apos[ai] = 0;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                                        bpos[bi] = 0;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                                } else<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                                        break;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                        if (e == -1) break;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        final double t = sum + y;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                        com = (t - sum) - y;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        sum = t;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                data.setObjectAbs(l++, sum);<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><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                return data;<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>         * 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.219"></a>
+<span class="sourceLineNo">220</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.220"></a>
+<span class="sourceLineNo">221</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.221"></a>
+<span class="sourceLineNo">222</span>         * @param a<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @param b<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @return dot product<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                if (b.getRank() &lt; 2)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                return tensorDotProduct(a, b, -1, -2);<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>         * Calculate the outer product of two datasets<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @param a<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param b<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return outer product<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                int[] as = a.getShapeRef();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                int[] bs = b.getShapeRef();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                int rank = as.length + bs.length;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int[] shape = new int[rank];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        shape[i] = as[i];<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        shape[as.length + i] = bs[i];<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                int isa = a.getElementsPerItem();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int isb = b.getElementsPerItem();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                if (isa != 1 || isb != 1) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                @SuppressWarnings("deprecation")<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                Dataset o = DatasetFactory.zeros(shape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                IndexIterator ita = a.getIterator();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator itb = b.getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                int j = 0;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (ita.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        while (itb.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        itb.reset();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return o;<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * possess last dimensions of length 2 or 3<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @param a<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         * @param b<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         * @return cross product<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         */<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return crossProduct(a, b, -1, -1, -1);<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * dimensions from the end of their shapes<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param a<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param b<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param axisC dimension to assign as cross-product<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @return cross product<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                final int rankA = a.getRank();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                final int rankB = b.getRank();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                if (rankA == 0 || rankB == 0) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                if (axisA &lt; 0) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        axisA += rankA;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (axisA &lt; 0 || axisA &gt;= rankA) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        throw new IllegalArgumentException("Axis A argument exceeds rank");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                if (axisB &lt; 0) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        axisB += rankB;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                if (axisB &lt; 0 || axisB &gt;= rankB) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        throw new IllegalArgumentException("Axis B argument exceeds rank");<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>                final int[] shapeA = a.getShape();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                final int[] shapeB = b.getShape();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                int la = shapeA[axisA];<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                int lb = shapeB[axisB];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<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>                if (Math.max(la,  lb) == 2) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        return crossProduct2D(a, b, axisA, axisB);<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>                return crossProduct3D(a, b, axisA, axisB, axisC);<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>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                int[] s = new int[shape.length - 1];<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                int i = 0;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                int j = 0;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                while (i &lt; axis) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        s[j++] = shape[i++];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                i++;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                while (i &lt; shape.length) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        s[j++] = shape[i++];<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                return s;<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>        // assume axes is in increasing order<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int n = axes.length;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                int[] s = new int[shape.length - n];<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                int i = 0;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                int j = 0;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                for (int k = 0; k &lt; n; k++) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        int a = axes[k];<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        while (i &lt; a) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                s[j++] = shape[i++];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        i++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                while (i &lt; shape.length) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        s[j++] = shape[i++];<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return s;<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 int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                int[] s = new int[shape.length + 1];<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                int i = 0;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                int j = 0;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                while (i &lt; axis) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        s[j++] = shape[i++];<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                s[j++] = length;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                while (i &lt; shape.length) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        s[j++] = shape[i++];<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return s;<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>        // assume axes is in increasing order<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        private static int[] addAxesToShape(int[] shape, int[] axes, int[] lengths) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                int n = axes.length;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                if (lengths.length != n) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        throw new IllegalArgumentException("Axes and lengths arrays must be same size");<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                int[] s = new int[shape.length + n];<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                int i = 0;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                int j = 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                for (int k = 0; k &lt; n; k++) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        int a = axes[k];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        while (i &lt; a) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                s[j++] = shape[i++];<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        s[j++] = lengths[k];<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                while (i &lt; shape.length) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        s[j++] = shape[i++];<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return s;<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>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                // need to broadcast and omit given axes<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                int[] maxShape = fullShapes.get(0);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                @SuppressWarnings("deprecation")<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                IndexIterator itc = c.getIterator();<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>                final int[] pa = ita.getPos();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                final int[] pb = itb.getPos();<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                while (itc.hasNext()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                ita.reset();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        if (!itb.hasNext())<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                itb.reset();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        pa[axisA] = 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        pb[axisB] = 1;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        pa[axisA] = 1;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        pb[axisB] = 0;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        c.setObjectAbs(itc.index, cv);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return c;<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>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>                int[] maxShape = fullShapes.get(0);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                int rankC = maxShape.length + 1;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                if (axisC &lt; 0) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        axisC += rankC;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                }<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                if (axisC &lt; 0 || axisC &gt;= rankC) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                        throw new IllegalArgumentException("Axis C argument exceeds rank");<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                @SuppressWarnings("deprecation")<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                final int[] pa = ita.getPos();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                final int[] pb = itb.getPos();<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                final int[] pc = itc.getPos();<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                final int la = a.getShapeRef()[axisA];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                final int lb = b.getShapeRef()[axisB];<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>                if (la == 2) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        while (itc.hasNext()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                        ita.reset();<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                if (!itb.hasNext())<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                        itb.reset();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                double cv;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                pa[axisA] = 1;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                pb[axisB] = 2;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pc[axisC] = 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                c.set(cv, pc);<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 0;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                pb[axisB] = 2;<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] = 1;<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] = 0;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                pb[axisB] = 1;<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] = 1;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                pb[axisB] = 0;<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] = 2;<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>                } else if (lb == 2) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        while (itc.hasNext()) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                        ita.reset();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                if (!itb.hasNext())<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                        itb.reset();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                double cv;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                pa[axisA] = 2;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                                pb[axisB] = 1;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                pc[axisC] = 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                c.set(cv, pc);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                pa[axisA] = 2;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                pb[axisB] = 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                pc[axisC] = 1;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                c.set(cv, pc);<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                pa[axisA] = 0;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                pb[axisB] = 1;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                pa[axisA] = 1;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                pb[axisB] = 0;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                pc[axisC] = 2;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                c.set(cv, pc);<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>                } else {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        while (itc.hasNext()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                        ita.reset();<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                if (!itb.hasNext())<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                        itb.reset();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                double cv;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                                pa[axisA] = 1;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                                pb[axisB] = 2;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                pa[axisA] = 2;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                pb[axisB] = 1;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                pc[axisC] = 0;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                c.set(cv, pc);<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                pa[axisA] = 2;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                pb[axisB] = 0;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                pa[axisA] = 0;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                pb[axisB] = 2;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                pc[axisC] = 1;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                c.set(cv, pc);<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                pa[axisA] = 0;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                pb[axisB] = 1;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                pa[axisA] = 1;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                pb[axisB] = 0;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                pc[axisC] = 2;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                c.set(cv, pc);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return c;<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>        /**<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * Raise dataset to given power by matrix multiplication<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param a<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * @param n power<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @return a ** n<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        public static Dataset power(Dataset a, int n) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                if (n &lt; 0) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                if (!a.hasFloatingPointElements())<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return p.cast(a.getDType());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                return p;<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>        /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * Create the Kronecker product as defined by <a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * where kn = sn * in + jn for n = 0...N and s is shape of b<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param a<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param b<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @return Kronecker product of a and b<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                }<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                int ar = a.getRank();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                int br = b.getRank();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                int[] aShape;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                int[] bShape;<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                aShape = a.getShapeRef();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                bShape = b.getShapeRef();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                int r = ar;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                // pre-pad if ranks are not same<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                if (ar &lt; br) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        r = br;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        int[] shape = new int[br];<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        int j = 0;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                shape[j++] = 1;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        int i = 0;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        while (j &lt; br) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                shape[j++] = aShape[i++];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        a = a.reshape(shape);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        aShape = shape;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                } else if (ar &gt; br) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        int[] shape = new int[ar];<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        int j = 0;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                shape[j++] = 1;<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 (j &lt; ar) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                shape[j++] = bShape[i++];<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        b = b.reshape(shape);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        bShape = shape;<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>                int[] nShape = new int[r];<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                for (int i = 0; i &lt; r; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                @SuppressWarnings("deprecation")<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                Dataset kron = DatasetFactory.zeros(nShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                IndexIterator ita = a.getIterator(true);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                IndexIterator itb = b.getIterator(true);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] pa = ita.getPos();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int[] pb = itb.getPos();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                int[] off = new int[1];<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                if (kron.getDType() == Dataset.INT64) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        while (ita.hasNext()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                int ka = 0; <a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                itb.reset();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                while (itb.hasNext()) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                        int kb = ka;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                                kb += stride[i] * pb[i];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                        }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                        kron.setObjectAbs(kb, av * bv);<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>                } else {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        while (ita.hasNext()) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.648"></a>
+<span class="sourceLineNo">649</span><a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                int ka = 0; <a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                itb.reset();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                while (itb.hasNext()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        int kb = ka;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                kb += stride[i] * pb[i];<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        kron.setObjectAbs(kb, av * bv);<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><a name="line.665"></a>
+<span class="sourceLineNo">666</span>                return kron;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>        }<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>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @param a<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         * @return trace of dataset<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         */<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public static Dataset trace(Dataset a) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                return trace(a, 0, 0, 1);<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>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @param offset<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         * @param axis1<a name="line.682"></a>
+<span class="sourceLineNo">683</span>         * @param axis2<a name="line.683"></a>
+<span class="sourceLineNo">684</span>         * @return trace of dataset<a name="line.684"></a>
+<span class="sourceLineNo">685</span>         */<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                int[] shape = a.getShapeRef();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                Arrays.sort(axes);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int is = a.getElementsPerItem();<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                @SuppressWarnings("deprecation")<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                Dataset trace = DatasetFactory.zeros(is, removeAxesFromShape(shape, axes), a.getDType());<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                int am = axes[0];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int mmax = shape[am];<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                int an = axes[1];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                int nmax = shape[an];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int[] pos = it.getPos();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                int i = 0;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                int mmin;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                int nmin;<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                if (offset &gt;= 0) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        mmin = 0;<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        nmin = offset;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                } else {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        mmin = -offset;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        nmin = 0;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                if (is == 1) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        if (a.getDType() == Dataset.INT64) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                while (it.hasNext()) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        int m = mmin;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                        int n = nmin;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                        long s = 0;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                                pos[am] = m++;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                                pos[an] = n++;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                                s += a.getLong(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        trace.setObjectAbs(i++, s);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        } else {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                while (it.hasNext()) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        int m = mmin;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                        int n = nmin;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        double s = 0;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                                pos[am] = m++;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                pos[an] = n++;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                s += a.getDouble(pos);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                        trace.setObjectAbs(i++, s);<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>                } else {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                long[] t = new long[is];<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                long[] s = new long[is];<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                while (it.hasNext()) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                        int m = mmin;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        int n = nmin;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        Arrays.fill(s, 0);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                                pos[am] = m++;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                pos[an] = n++;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        } else {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                double[] t = new double[is];<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                double[] s = new double[is];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                while (it.hasNext()) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                        int m = mmin;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                        int n = nmin;<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                        Arrays.fill(s, 0);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                                pos[am] = m++;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                                pos[an] = n++;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                                ca.getDoubleArray(t, pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                }<a name="line.773"></a>
+<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return trace;<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>         * Order value for norm<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        public enum NormOrder {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                /**<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                 */<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                DEFAULT,<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                /**<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                 * Frobenius (not allowed for vectors)<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                 */<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                FROBENIUS,<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                /**<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                 * Zero-order (not allowed for matrices)<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                 */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                ZERO,<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                /**<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                 * Positive infinity<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                 */<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                POS_INFINITY,<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                /**<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                 * Negative infinity<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                 */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                NEG_INFINITY;<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>        /**<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param a<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @return norm of dataset<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public static double norm(Dataset a) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return norm(a, NormOrder.DEFAULT);<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>         * @param a<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @param order<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return norm of dataset<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                int r = a.getRank();<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                if (r == 1) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        return vectorNorm(a, order);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                } else if (r == 2) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        return matrixNorm(a, order);<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                double n;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                IndexIterator it;<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                switch (order) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                case FROBENIUS:<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                case NEG_INFINITY:<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                case POS_INFINITY:<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        it = a.getIterator();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                if (a.isComplex()) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        while (it.hasNext()) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                n = Math.max(n, v);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        while (it.hasNext()) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                n = Math.max(n, v);<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>                        } else {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                n = Double.POSITIVE_INFINITY;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                if (a.isComplex()) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                n = Math.min(n, v);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                } else {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                        while (it.hasNext()) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                n = Math.min(n, v);<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>                        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        break;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                case ZERO:<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        it = a.getIterator();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        n = 0;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        if (a.isComplex()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                while (it.hasNext()) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                n++;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                while (it.hasNext()) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                                n++;<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>                        <a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        break;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                default:<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        n = vectorNorm(a, 2);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        break;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                return n;<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>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                double n;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                IndexIterator it;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                switch (order) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                case NEG_INFINITY:<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                case POS_INFINITY:<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        break;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                case ZERO:<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                default:<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                case FROBENIUS:<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        it = a.getIterator();<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        n = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        if (a.isComplex()) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                while (it.hasNext()) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                        n += v*v;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        } else {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                while (it.hasNext()) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                        n += v*v;<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>                        n = Math.sqrt(n);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        break;<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                return n;<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>        /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param a<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param p<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         * @return p-norm of dataset<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         */<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        public static double norm(Dataset a, final double p) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (p == 0) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        return norm(a, NormOrder.ZERO);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                int r = a.getRank();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                if (r == 1) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        return vectorNorm(a, p);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                } else if (r == 2) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        return matrixNorm(a, p);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, final double p) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator it = a.getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                double n = 0;<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                if (a.isComplex()) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        while (it.hasNext()) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (p == 2) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        v *= v;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                } else if (p != 1) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        v = Math.pow(v, p);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                n += v;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                } else {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        while (it.hasNext()) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                if (p == 1) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        v = Math.abs(v);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                } else if (p == 2) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        v *= v;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                } else {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                }<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                n += v;<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 Math.pow(n, 1./p);<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>        private static double matrixNorm(Dataset a, final double p) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                double n;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                if (Math.abs(p) == 1) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                } else if (Math.abs(p) == 2) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        double[] s = calcSingularValues(a);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                } else {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        throw new IllegalArgumentException("Order not allowed");<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                return n;<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>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                double n;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                IndexIterator it;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                int[] pos;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                int l;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                it = a.getPositionIterator(d);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                pos = it.getPos();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                l = a.getShapeRef()[d];<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                if (max) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        if (a.isComplex()) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                pos[d] = i;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        pos[d] = 0;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        n = Math.max(n, v);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        } else {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                pos[d] = i;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        pos[d] = 0;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        n = Math.max(n, v);<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>                } else {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        n = Double.POSITIVE_INFINITY;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        if (a.isComplex()) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                                pos[d] = i;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        pos[d] = 0;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        n = Math.min(n, v);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        } else {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                while (it.hasNext()) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                pos[d] = i;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        pos[d] = 0;<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        n = Math.min(n, v);<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>                return n;<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>        /**<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         * @param a<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>         * @return array of singular values<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>         */<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                return svd.getSingularValues();<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><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        /**<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * Calculate singular value decomposition A = U S V^T<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         */<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                createDataset(svd.getV())};<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 (Moore-Penrose) pseudo-inverse<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param a<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @return pseudo-inverse<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         */<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return createDataset(svd.getSolver().getInverse());<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>        /**<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param a<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @return effective numerical rank of matrix<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         */<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return svd.getRank();<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 condition number of matrix by singular value decomposition method<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return condition number<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return svd.getConditionNumber();<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>         * @param a<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @return determinant of dataset<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         */<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>        public static double calcDeterminant(Dataset a) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                return evd.getDeterminant();<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>        /**<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>         * @param a<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         */<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                return DatasetFactory.createFromObject(rev);<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>         * Calculate eigen-decomposition A = V D V^T<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         * @param a<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>         */<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset[] results = new Dataset[2];<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                results[1] = createDataset(evd.getV());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return results;<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>         * Calculate QR decomposition A = Q R<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>         * @param a<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * @return array of Q and R<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<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 LU decomposition A = P^-1 L U<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * @param a<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @return array of L, U and P<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         */<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                createDataset(lud.getP())};<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>        /**<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * Calculate inverse of square dataset<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * @param a<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @return inverse<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         */<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                return createDataset(lud.getSolver().getInverse());<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>         * Solve linear matrix equation A x = v<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * @param a<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         * @param v<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @return x<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         */<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (v.getRank() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        RealVector x = createRealVector(v);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                RealMatrix x = createRealMatrix(v);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return createDataset(lud.getSolver().solve(x));<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>        /**<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * Solve least squares matrix equation A x = v by SVD<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param a<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param v<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @return x<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         */<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                if (v.getRank() == 1) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                        RealVector x = createRealVector(v);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                RealMatrix x = createRealMatrix(v);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                return createDataset(svd.getSolver().solve(x));<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        }<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>         * Calculate Cholesky decomposition A = L L^T<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @param a<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @return L<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                return createDataset(cd.getL());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        /**<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; ||v|| with maximum of 100 iterations<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>         * @param a<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>         * @param v<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>         */<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                return calcConjugateGradient(a, v, 100, 1);<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>        /**<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; delta ||v||<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>         * @param a<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>         * @param v<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>         * @param maxIterations<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>         * @param delta parameter used by stopping criterion<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>         */<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span><a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                if (a.getRank() != 2) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                int[] shape = a.getShapeRef();<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                IndexIterator it = a.getIterator(true);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                int[] pos = it.getPos();<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                return m;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>        private static RealVector createRealVector(Dataset a) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                if (a.getRank() != 1) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                int size = a.getSize();<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                IndexIterator it = a.getIterator(true);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                int[] pos = it.getPos();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                RealVector m = new ArrayRealVector(size);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                return m;<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>        private static Dataset createDataset(RealVector v) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                int size = r.getSize();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (v instanceof ArrayRealVector) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                r.setAbs(i, data[i]);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                        }<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                return r;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        IndexIterator it = r.getIterator(true);<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        int[] pos = it.getPos();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                        IndexIterator it = r.getIterator(true);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                        int[] pos = it.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        while (it.hasNext()) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<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>                return r;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>}<a name="line.1293"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..4972b0d
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html
@@ -0,0 +1,1365 @@
+<!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 = axisa;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                if (aaxis &lt; 0)<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        aaxis += arank;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                if (aaxis &lt; 0 || aaxis &gt;= arank)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        throw new IllegalArgumentException("Summing axis outside valid rank of 1st dataset");<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                int baxis = axisb;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                if (baxis &lt; 0)<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        baxis += arank;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (baxis &lt; 0 || baxis &gt;= arank)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        throw new IllegalArgumentException("Summing axis outside valid rank of 2nd dataset");<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] achoice = new boolean[arank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                final boolean[] bchoice = new boolean[brank];<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                Arrays.fill(achoice, true);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                Arrays.fill(bchoice, true);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                bchoice[baxis] = false;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                final boolean[] notachoice = new boolean[arank];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                notbchoice[baxis] = true;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                int drank = arank + brank - 2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                int[] dshape = new int[drank];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                int d = 0;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (achoice[i])<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                dshape[d++] = ashape[i];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        if (bchoice[i])<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                dshape[d++] = bshape[i];<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                @SuppressWarnings("deprecation")<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int l = 0;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                final int[] apos = ita.getPos();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                while (ita.hasNext()) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        final int[] bpos = itb.getPos();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        while (itb.hasNext()) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                double sum = 0.0;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                double com = 0.0;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        final double t = sum + y;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        com = (t - sum) - y;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        sum = t;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                data.setObjectAbs(l++, sum);<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 data;<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>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * from the given axes in each dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param a<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param b<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @return tensor dot product<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (axisa.length != axisb.length) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                final int[] ashape = a.getShapeRef();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                final int[] bshape = b.getShapeRef();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                final int arank = ashape.length;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                final int brank = bshape.length;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                final int[] aaxes = new int[axisa.length];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                final int[] baxes = new int[axisa.length];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        int n;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        n = axisa[i];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        if (n &lt; 0) n += arank;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        if (n &lt; 0 || n &gt;= arank)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                throw new IllegalArgumentException("Summing axis outside valid rank of 1st dataset");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        aaxes[i] = n;<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        n = axisb[i];<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        if (n &lt; 0) n += brank;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        if (n &lt; 0 || n &gt;= brank)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                throw new IllegalArgumentException("Summing axis outside valid rank of 2nd dataset");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        baxes[i] = n;<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (ashape[aaxes[i]] != bshape[n])<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<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>                final boolean[] achoice = new boolean[arank];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                final boolean[] bchoice = new boolean[brank];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                Arrays.fill(achoice, true);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                Arrays.fill(bchoice, true);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        achoice[aaxes[i]] = false;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        bchoice[baxes[i]] = false;<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>                int drank = arank + brank - 2*aaxes.length;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                int[] dshape = new int[drank];<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                int d = 0;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        if (achoice[i])<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                dshape[d++] = ashape[i];<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (bchoice[i])<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                dshape[d++] = bshape[i];<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                @SuppressWarnings("deprecation")<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                int l = 0;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                final int[] apos = ita.getPos();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                while (ita.hasNext()) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        final int[] bpos = itb.getPos();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        while (itb.hasNext()) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                double sum = 0.0;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                double com = 0.0;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                while (true) { // step through summing axes<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        int e = aaxes.length - 1;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        for (; e &gt;= 0; e--) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                                int ai = aaxes[e];<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                                                int bi = baxes[e];<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                                apos[ai]++;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                                bpos[bi]++;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                                        apos[ai] = 0;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                                        bpos[bi] = 0;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                                } else<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                                        break;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                        if (e == -1) break;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        final double t = sum + y;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                        com = (t - sum) - y;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        sum = t;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                data.setObjectAbs(l++, sum);<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><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                return data;<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>         * 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.219"></a>
+<span class="sourceLineNo">220</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.220"></a>
+<span class="sourceLineNo">221</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.221"></a>
+<span class="sourceLineNo">222</span>         * @param a<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @param b<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @return dot product<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                if (b.getRank() &lt; 2)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                return tensorDotProduct(a, b, -1, -2);<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>         * Calculate the outer product of two datasets<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @param a<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param b<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return outer product<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                int[] as = a.getShapeRef();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                int[] bs = b.getShapeRef();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                int rank = as.length + bs.length;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int[] shape = new int[rank];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        shape[i] = as[i];<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        shape[as.length + i] = bs[i];<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                int isa = a.getElementsPerItem();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                int isb = b.getElementsPerItem();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                if (isa != 1 || isb != 1) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                @SuppressWarnings("deprecation")<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                Dataset o = DatasetFactory.zeros(shape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                IndexIterator ita = a.getIterator();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                IndexIterator itb = b.getIterator();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                int j = 0;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                while (ita.hasNext()) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        while (itb.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        itb.reset();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return o;<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * possess last dimensions of length 2 or 3<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @param a<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         * @param b<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         * @return cross product<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         */<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return crossProduct(a, b, -1, -1, -1);<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>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * dimensions from the end of their shapes<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param a<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param b<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param axisC dimension to assign as cross-product<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @return cross product<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                final int rankA = a.getRank();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                final int rankB = b.getRank();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                if (rankA == 0 || rankB == 0) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                if (axisA &lt; 0) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        axisA += rankA;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (axisA &lt; 0 || axisA &gt;= rankA) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        throw new IllegalArgumentException("Axis A argument exceeds rank");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                if (axisB &lt; 0) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        axisB += rankB;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                if (axisB &lt; 0 || axisB &gt;= rankB) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        throw new IllegalArgumentException("Axis B argument exceeds rank");<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>                final int[] shapeA = a.getShape();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                final int[] shapeB = b.getShape();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                int la = shapeA[axisA];<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                int lb = shapeB[axisB];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<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>                if (Math.max(la,  lb) == 2) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        return crossProduct2D(a, b, axisA, axisB);<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>                return crossProduct3D(a, b, axisA, axisB, axisC);<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>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                int[] s = new int[shape.length - 1];<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                int i = 0;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                int j = 0;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                while (i &lt; axis) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        s[j++] = shape[i++];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                i++;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                while (i &lt; shape.length) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        s[j++] = shape[i++];<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                return s;<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>        // assume axes is in increasing order<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int n = axes.length;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                int[] s = new int[shape.length - n];<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                int i = 0;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                int j = 0;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                for (int k = 0; k &lt; n; k++) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        int a = axes[k];<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        while (i &lt; a) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                s[j++] = shape[i++];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        i++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                while (i &lt; shape.length) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        s[j++] = shape[i++];<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return s;<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 int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                int[] s = new int[shape.length + 1];<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                int i = 0;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                int j = 0;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                while (i &lt; axis) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        s[j++] = shape[i++];<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                s[j++] = length;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                while (i &lt; shape.length) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        s[j++] = shape[i++];<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return s;<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>        // assume axes is in increasing order<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        private static int[] addAxesToShape(int[] shape, int[] axes, int[] lengths) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                int n = axes.length;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                if (lengths.length != n) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        throw new IllegalArgumentException("Axes and lengths arrays must be same size");<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                int[] s = new int[shape.length + n];<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                int i = 0;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                int j = 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                for (int k = 0; k &lt; n; k++) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        int a = axes[k];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        while (i &lt; a) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                s[j++] = shape[i++];<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        s[j++] = lengths[k];<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                while (i &lt; shape.length) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        s[j++] = shape[i++];<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return s;<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>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                // need to broadcast and omit given axes<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                int[] maxShape = fullShapes.get(0);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                @SuppressWarnings("deprecation")<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                IndexIterator itc = c.getIterator();<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>                final int[] pa = ita.getPos();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                final int[] pb = itb.getPos();<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                while (itc.hasNext()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                ita.reset();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        if (!itb.hasNext())<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                itb.reset();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        pa[axisA] = 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        pb[axisB] = 1;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        pa[axisA] = 1;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        pb[axisB] = 0;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        c.setObjectAbs(itc.index, cv);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return c;<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>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>                int[] maxShape = fullShapes.get(0);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                int rankC = maxShape.length + 1;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                if (axisC &lt; 0) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        axisC += rankC;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                }<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                if (axisC &lt; 0 || axisC &gt;= rankC) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                        throw new IllegalArgumentException("Axis C argument exceeds rank");<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                @SuppressWarnings("deprecation")<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                final int[] pa = ita.getPos();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                final int[] pb = itb.getPos();<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                final int[] pc = itc.getPos();<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                final int la = a.getShapeRef()[axisA];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                final int lb = b.getShapeRef()[axisB];<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>                if (la == 2) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        while (itc.hasNext()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                        ita.reset();<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                if (!itb.hasNext())<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                        itb.reset();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                double cv;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                pa[axisA] = 1;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                pb[axisB] = 2;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pc[axisC] = 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                c.set(cv, pc);<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 0;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                pb[axisB] = 2;<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] = 1;<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] = 0;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                pb[axisB] = 1;<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] = 1;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                pb[axisB] = 0;<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] = 2;<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>                } else if (lb == 2) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        while (itc.hasNext()) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                        ita.reset();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                if (!itb.hasNext())<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                        itb.reset();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                double cv;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                pa[axisA] = 2;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                                pb[axisB] = 1;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                pc[axisC] = 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                c.set(cv, pc);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                pa[axisA] = 2;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                pb[axisB] = 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                pc[axisC] = 1;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                c.set(cv, pc);<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                pa[axisA] = 0;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                pb[axisB] = 1;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                pa[axisA] = 1;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                pb[axisB] = 0;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                pc[axisC] = 2;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                c.set(cv, pc);<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>                } else {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        while (itc.hasNext()) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                        ita.reset();<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                if (!itb.hasNext())<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                        itb.reset();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                double cv;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                                pa[axisA] = 1;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                                pb[axisB] = 2;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                pa[axisA] = 2;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                pb[axisB] = 1;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                pc[axisC] = 0;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                c.set(cv, pc);<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                pa[axisA] = 2;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                pb[axisB] = 0;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                pa[axisA] = 0;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                pb[axisB] = 2;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                pc[axisC] = 1;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                c.set(cv, pc);<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                pa[axisA] = 0;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                pb[axisB] = 1;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                pa[axisA] = 1;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                pb[axisB] = 0;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                pc[axisC] = 2;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                c.set(cv, pc);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return c;<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>        /**<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * Raise dataset to given power by matrix multiplication<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param a<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         * @param n power<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @return a ** n<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         */<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        public static Dataset power(Dataset a, int n) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                if (n &lt; 0) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                if (!a.hasFloatingPointElements())<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return p.cast(a.getDType());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                return p;<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>        /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * Create the Kronecker product as defined by <a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * where kn = sn * in + jn for n = 0...N and s is shape of b<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param a<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param b<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @return Kronecker product of a and b<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                }<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                int ar = a.getRank();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                int br = b.getRank();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                int[] aShape;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                int[] bShape;<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                aShape = a.getShapeRef();<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                bShape = b.getShapeRef();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                int r = ar;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                // pre-pad if ranks are not same<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                if (ar &lt; br) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        r = br;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        int[] shape = new int[br];<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        int j = 0;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                shape[j++] = 1;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        int i = 0;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        while (j &lt; br) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                shape[j++] = aShape[i++];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        a = a.reshape(shape);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        aShape = shape;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                } else if (ar &gt; br) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        int[] shape = new int[ar];<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        int j = 0;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                shape[j++] = 1;<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 (j &lt; ar) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                shape[j++] = bShape[i++];<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        b = b.reshape(shape);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        bShape = shape;<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>                int[] nShape = new int[r];<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                for (int i = 0; i &lt; r; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                @SuppressWarnings("deprecation")<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                Dataset kron = DatasetFactory.zeros(nShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                IndexIterator ita = a.getIterator(true);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                IndexIterator itb = b.getIterator(true);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] pa = ita.getPos();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int[] pb = itb.getPos();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                int[] off = new int[1];<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                if (kron.getDType() == Dataset.INT64) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        while (ita.hasNext()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                int ka = 0; <a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                itb.reset();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                while (itb.hasNext()) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                        int kb = ka;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                                kb += stride[i] * pb[i];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                        }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                        kron.setObjectAbs(kb, av * bv);<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>                } else {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        while (ita.hasNext()) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.648"></a>
+<span class="sourceLineNo">649</span><a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                int ka = 0; <a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                itb.reset();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                while (itb.hasNext()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        int kb = ka;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                kb += stride[i] * pb[i];<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        kron.setObjectAbs(kb, av * bv);<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><a name="line.665"></a>
+<span class="sourceLineNo">666</span>                return kron;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>        }<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>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @param a<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         * @return trace of dataset<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         */<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public static Dataset trace(Dataset a) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                return trace(a, 0, 0, 1);<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>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @param offset<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         * @param axis1<a name="line.682"></a>
+<span class="sourceLineNo">683</span>         * @param axis2<a name="line.683"></a>
+<span class="sourceLineNo">684</span>         * @return trace of dataset<a name="line.684"></a>
+<span class="sourceLineNo">685</span>         */<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                int[] shape = a.getShapeRef();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                Arrays.sort(axes);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int is = a.getElementsPerItem();<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                @SuppressWarnings("deprecation")<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                Dataset trace = DatasetFactory.zeros(is, removeAxesFromShape(shape, axes), a.getDType());<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>                int am = axes[0];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int mmax = shape[am];<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                int an = axes[1];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                int nmax = shape[an];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                int[] pos = it.getPos();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                int i = 0;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                int mmin;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                int nmin;<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                if (offset &gt;= 0) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        mmin = 0;<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        nmin = offset;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                } else {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        mmin = -offset;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        nmin = 0;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                if (is == 1) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        if (a.getDType() == Dataset.INT64) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                while (it.hasNext()) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        int m = mmin;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                        int n = nmin;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                        long s = 0;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                                pos[am] = m++;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                                pos[an] = n++;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                                s += a.getLong(pos);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        trace.setObjectAbs(i++, s);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        } else {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                while (it.hasNext()) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        int m = mmin;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                        int n = nmin;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        double s = 0;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                                pos[am] = m++;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                pos[an] = n++;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                s += a.getDouble(pos);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                        trace.setObjectAbs(i++, s);<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>                } else {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                long[] t = new long[is];<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                long[] s = new long[is];<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                while (it.hasNext()) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                        int m = mmin;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        int n = nmin;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        Arrays.fill(s, 0);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                                pos[am] = m++;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                                pos[an] = n++;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        } else {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                double[] t = new double[is];<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                double[] s = new double[is];<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                while (it.hasNext()) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                        int m = mmin;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                        int n = nmin;<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                        Arrays.fill(s, 0);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                                pos[am] = m++;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                                pos[an] = n++;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                                ca.getDoubleArray(t, pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                                        s[k] += t[k];<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>                                        trace.setObjectAbs(i++, s);<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>                }<a name="line.773"></a>
+<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return trace;<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>         * Order value for norm<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        public enum NormOrder {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                /**<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                 */<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                DEFAULT,<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                /**<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                 * Frobenius (not allowed for vectors)<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                 */<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                FROBENIUS,<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                /**<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                 * Zero-order (not allowed for matrices)<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                 */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                ZERO,<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                /**<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                 * Positive infinity<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                 */<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                POS_INFINITY,<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                /**<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                 * Negative infinity<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                 */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                NEG_INFINITY;<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>        /**<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param a<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @return norm of dataset<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public static double norm(Dataset a) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                return norm(a, NormOrder.DEFAULT);<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>         * @param a<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @param order<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return norm of dataset<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                int r = a.getRank();<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                if (r == 1) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        return vectorNorm(a, order);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                } else if (r == 2) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        return matrixNorm(a, order);<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                double n;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                IndexIterator it;<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                switch (order) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                case FROBENIUS:<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                case NEG_INFINITY:<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                case POS_INFINITY:<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        it = a.getIterator();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                if (a.isComplex()) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        while (it.hasNext()) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                n = Math.max(n, v);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        while (it.hasNext()) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                n = Math.max(n, v);<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>                        } else {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                n = Double.POSITIVE_INFINITY;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                if (a.isComplex()) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                n = Math.min(n, v);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                } else {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                        while (it.hasNext()) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                n = Math.min(n, v);<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>                        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        break;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                case ZERO:<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        it = a.getIterator();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        n = 0;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        if (a.isComplex()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                while (it.hasNext()) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                n++;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                while (it.hasNext()) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                                n++;<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>                        <a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        break;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                default:<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        n = vectorNorm(a, 2);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        break;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                return n;<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>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                double n;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                IndexIterator it;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                switch (order) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                case NEG_INFINITY:<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                case POS_INFINITY:<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        break;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                case ZERO:<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                default:<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                case FROBENIUS:<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        it = a.getIterator();<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        n = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        if (a.isComplex()) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                while (it.hasNext()) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                        n += v*v;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        } else {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                while (it.hasNext()) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                        n += v*v;<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>                        n = Math.sqrt(n);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        break;<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                return n;<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>        /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param a<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         * @param p<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         * @return p-norm of dataset<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         */<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        public static double norm(Dataset a, final double p) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (p == 0) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        return norm(a, NormOrder.ZERO);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                int r = a.getRank();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                if (r == 1) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        return vectorNorm(a, p);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                } else if (r == 2) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        return matrixNorm(a, p);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<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>        private static double vectorNorm(Dataset a, final double p) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                IndexIterator it = a.getIterator();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                double n = 0;<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                if (a.isComplex()) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        while (it.hasNext()) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (p == 2) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        v *= v;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                } else if (p != 1) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        v = Math.pow(v, p);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                n += v;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                } else {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        while (it.hasNext()) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                if (p == 1) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        v = Math.abs(v);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                } else if (p == 2) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        v *= v;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                } else {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                }<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                n += v;<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 Math.pow(n, 1./p);<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>        private static double matrixNorm(Dataset a, final double p) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                double n;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                if (Math.abs(p) == 1) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                } else if (Math.abs(p) == 2) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        double[] s = calcSingularValues(a);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                } else {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        throw new IllegalArgumentException("Order not allowed");<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                return n;<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>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                double n;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                IndexIterator it;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                int[] pos;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                int l;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                it = a.getPositionIterator(d);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                pos = it.getPos();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                l = a.getShapeRef()[d];<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                if (max) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        if (a.isComplex()) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                pos[d] = i;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        pos[d] = 0;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        n = Math.max(n, v);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        } else {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                pos[d] = i;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        pos[d] = 0;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        n = Math.max(n, v);<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>                } else {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        n = Double.POSITIVE_INFINITY;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        if (a.isComplex()) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                                pos[d] = i;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        pos[d] = 0;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        n = Math.min(n, v);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        } else {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                while (it.hasNext()) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                pos[d] = i;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        pos[d] = 0;<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        n = Math.min(n, v);<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>                return n;<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>        /**<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         * @param a<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>         * @return array of singular values<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>         */<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                return svd.getSingularValues();<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><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        /**<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * Calculate singular value decomposition A = U S V^T<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         */<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                createDataset(svd.getV())};<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 (Moore-Penrose) pseudo-inverse<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param a<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @return pseudo-inverse<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         */<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                return createDataset(svd.getSolver().getInverse());<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>        /**<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         * @param a<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>         * @return effective numerical rank of matrix<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>         */<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return svd.getRank();<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 condition number of matrix by singular value decomposition method<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return condition number<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return svd.getConditionNumber();<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>         * @param a<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @return determinant of dataset<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         */<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>        public static double calcDeterminant(Dataset a) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                return evd.getDeterminant();<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>        /**<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>         * @param a<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         */<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                return DatasetFactory.createFromObject(rev);<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>         * Calculate eigen-decomposition A = V D V^T<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         * @param a<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>         */<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset[] results = new Dataset[2];<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                } else {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                results[1] = createDataset(evd.getV());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                return results;<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>         * Calculate QR decomposition A = Q R<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>         * @param a<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * @return array of Q and R<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<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 LU decomposition A = P^-1 L U<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * @param a<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @return array of L, U and P<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         */<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                createDataset(lud.getP())};<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>        /**<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * Calculate inverse of square dataset<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * @param a<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @return inverse<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         */<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                return createDataset(lud.getSolver().getInverse());<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>         * Solve linear matrix equation A x = v<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * @param a<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         * @param v<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @return x<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         */<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (v.getRank() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        RealVector x = createRealVector(v);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                RealMatrix x = createRealMatrix(v);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return createDataset(lud.getSolver().solve(x));<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>        /**<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * Solve least squares matrix equation A x = v by SVD<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param a<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param v<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @return x<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         */<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                if (v.getRank() == 1) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                        RealVector x = createRealVector(v);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                RealMatrix x = createRealMatrix(v);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                return createDataset(svd.getSolver().solve(x));<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        }<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>         * Calculate Cholesky decomposition A = L L^T<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @param a<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @return L<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                return createDataset(cd.getL());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        /**<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; ||v|| with maximum of 100 iterations<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>         * @param a<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>         * @param v<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>         */<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                return calcConjugateGradient(a, v, 100, 1);<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>        /**<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; delta ||v||<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>         * @param a<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>         * @param v<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>         * @param maxIterations<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>         * @param delta parameter used by stopping criterion<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>         */<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span><a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                if (a.getRank() != 2) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                int[] shape = a.getShapeRef();<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                IndexIterator it = a.getIterator(true);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                int[] pos = it.getPos();<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                return m;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>        private static RealVector createRealVector(Dataset a) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                if (a.getRank() != 1) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                int size = a.getSize();<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                IndexIterator it = a.getIterator(true);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                int[] pos = it.getPos();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                RealVector m = new ArrayRealVector(size);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                return m;<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>        private static Dataset createDataset(RealVector v) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                int size = r.getSize();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (v instanceof ArrayRealVector) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                r.setAbs(i, data[i]);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                } else {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                        }<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                return r;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        IndexIterator it = r.getIterator(true);<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        int[] pos = it.getPos();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                } else {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                        IndexIterator it = r.getIterator(true);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                        int[] pos = it.getPos();<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        while (it.hasNext()) {<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<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>                return r;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>}<a name="line.1293"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..8f4dfb4
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,1335 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        LongDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                LongDataset other = (LongDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 LongDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new LongDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static LongDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                LongDataset result = new LongDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static LongDataset createRange(final double stop) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 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>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param start<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static LongDataset createRange(final double start, final double stop, final double step) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                LongDataset result = new LongDataset(size);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result;<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static LongDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new LongDataset(shape).fill(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 LongDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public long[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 LongDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                LongDataset view = new LongDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public long getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public long get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public long get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public long get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Long.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Long.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Long.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Long.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         *<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final long value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         *<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final long value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final long value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         *<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final long value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem(DTypeUtils.toLong(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem(DTypeUtils.toLong(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem(DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem(DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final long[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public LongDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                LongDataset ads = clone().sort(null);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        LongDataset ads = new LongDataset(shape[axis]);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public LongDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Long&gt; set = new TreeSet&lt;Long&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                LongDataset u = new LongDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                long[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Long v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public LongDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                LongDataset result = new LongDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                long[] rdata = ((LongDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public LongDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public LongDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public LongDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem(ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        LongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public LongDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                long v = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final long value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (data[iter.index] == value) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone());<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>                }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (max == null) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        max = findPositions(md.getMaximum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>        @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>                if (min == null) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        min = findPositions(md.getMinimum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public boolean containsNans() {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return false;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public boolean containsInfs() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return false;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public boolean containsInvalidNumbers() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return false;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public LongDataset iadd(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                setDirty();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                if (bds.getSize() == 1) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        final IndexIterator it = getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (useLong) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                while (it.hasNext()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                while (it.hasNext()) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        data[it.index] += db;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        it.setOutputDouble(!useLong);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        if (useLong) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        data[it.aIndex] += it.bLong;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        } else {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        data[it.aIndex] += it.bDouble;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<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 this;<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>        @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public LongDataset isubtract(final Object b) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                setDirty();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (bds.getSize() == 1) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        final IndexIterator it = getIterator();<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        if (useLong) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        data[it.index] -= lb;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        } else {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        data[it.index] -= db;<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>                } else {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (useLong) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                it.setOutputDouble(false);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        } else {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                it.setOutputDouble(true);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                while (it.hasNext()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        data[it.aIndex] -= it.bDouble;<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>                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                return this;<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>        @Override<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        public LongDataset imultiply(final Object b) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                setDirty();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (bds.getSize() == 1) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        final IndexIterator it = getIterator();<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        if (useLong) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                while (it.hasNext()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        data[it.index] *= lb;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        } else {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                while (it.hasNext()) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        data[it.index] *= db;<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>                } else {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        it.setOutputDouble(!useLong);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        if (useLong) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                while (it.hasNext()) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        } else {<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.bDouble;<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>                }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                return this;<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>        @Override<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        public LongDataset idivide(final Object b) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                setDirty();<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                if (bds.getSize() == 1) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (useLong) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                if (lb == 0) { // INT_USE<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        fill(0); // INT_USE<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                } else { // INT_USE<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                final IndexIterator it = getIterator();<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                while (it.hasNext()) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        data[it.index] /= lb;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                if (db == 0) { // INT_USE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        fill(0); // INT_USE<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } else { // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                final IndexIterator it = getIterator();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        data[it.index] /= db;<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        it.setOutputDouble(!useLong);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (useLong) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        } else { // INT_USE<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        } else {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        } else { // INT_USE<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        } // INT_USE<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>                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                return this;<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>        @Override<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        public LongDataset ifloor() {<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 iremainder(final Object b) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                setDirty();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                if (bds.getSize() == 1) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (useLong) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                if (lb == 0) { // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        fill(0); // INT_USE<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                } else { // INT_USE<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                final IndexIterator it = getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                while (it.hasNext()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        data[it.index] %= lb;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                } // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        } else {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                if (lb == 0) { // INT_USE<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        fill(0); // INT_USE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                } else { // INT_USE<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final IndexIterator it = getIterator();<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                while (it.hasNext()) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.index] %= lb;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                } // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                } else {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        it.setOutputDouble(!useLong);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        if (useLong) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                while (it.hasNext()) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                try {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                } catch (ArithmeticException e) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.aIndex] = 0;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                while (it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                data[it.aIndex] %= it.bDouble; // INT_EXCEPTION<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } catch (ArithmeticException e) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        data[it.aIndex] = 0;<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>                        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return this;<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>        @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        public LongDataset ipower(final Object b) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                setDirty();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (bds.getSize() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        final IndexIterator it = getIterator();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (bds.isComplex()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                if (vi == 0) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                        while (it.hasNext()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                } else { // INT_USE<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                } // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                } else {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        while (it.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                } else { // INT_USE<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                } // INT_USE<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>                        } else {// NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                while (it.hasNext()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = 0; // INT_USE<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        } else { // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        } // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                } else {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        if (bds.isComplex()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                while (it.hasNext()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        } else { // INT_USE<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        } // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        } else {// NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                while (it.hasNext()) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        } else { // INT_USE<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } // INT_USE<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>                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                return this;<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>        @Override<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                it.setOutputDouble(true);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                double sum = 0;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                double comp = 0;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        if (w == null) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                while (it.hasNext()) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        final double err = diff * diff - comp;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        final double temp = sum + err;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        comp = (temp - sum) - err;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        sum = temp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        } else {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                IndexIterator itw = w.getIterator();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final double temp = sum + err;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        comp = (temp - sum) - err;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        sum = temp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                }<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>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Maths.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..b9808e3
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,3036 @@
+<!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><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Mathematics class<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class Maths extends GeneratedMaths {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * Unwrap result from mathematical methods if necessary<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param o<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @param a<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @return a dataset if a is a dataset or an object of the same class as o<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public static Object unwrap(final Dataset o, final Object a) {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return a instanceof Dataset ? o : o.getObjectAbs(o.getOffset());<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>         * Unwrap result from mathematical methods if necessary<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param o<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param a<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @return a dataset if either a and b are datasets or an object of the same class as o<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public static Object unwrap(final Dataset o, final Object a, final Object b) {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                return (a instanceof Dataset || b instanceof Dataset) ? o : o.getObjectAbs(o.getOffset());<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>         * Unwrap result from mathematical methods if necessary<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param o<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param a<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return a dataset if any inputs are datasets or an object of the same class as o<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public static Object unwrap(final Dataset o, final Object... a) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                boolean isAnyDataset = false;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                for (Object obj : a) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        if (obj instanceof Dataset) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                isAnyDataset = true;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                break;<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>                return isAnyDataset ? o : o.getObjectAbs(o.getOffset());<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>         * @param a<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param b<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @return floor divide of a and b<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public static Dataset floorDivide(final Object a, final Object b) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return floorDivide(a, b, 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>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @param a<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @param b<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @return floor divide of a and b<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public static Dataset floorDivide(final Object a, final Object b, final Dataset o) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return divideTowardsFloor(a, b, o).ifloor();<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>         * @param a<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param b<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @return floor remainder of a and b<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public static Dataset floorRemainder(final Object a, final Object b) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                return floorRemainder(a, b, null);<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>         * @param a<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param b<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @return floor remainder of a and b<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        public static Dataset floorRemainder(final Object a, final Object b, final Dataset o) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                Dataset dq = floorDivide(da, db);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                dq.imultiply(db);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return subtract(da, dq, o);<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>         * Find reciprocal from dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param a<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @return reciprocal dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public static Dataset reciprocal(final Object a) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                return reciprocal(a, null);<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>         * Find reciprocal from dataset<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param a<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @return reciprocal dataset<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        public static Dataset reciprocal(final Object a, final Dataset o) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return divide(1, da, o);<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>         * abs - absolute value of each element<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param a<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @return dataset<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public static Dataset abs(final Object a) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                return abs(a, null);<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>         * abs - absolute value of each element<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param a<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @return dataset<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public static Dataset abs(final Object a, final Dataset o) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                final Dataset result = it.getOutput();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                final int is = result.getElementsPerItem();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                final int dt = result.getDType();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                final int as = da.getElementsPerItem();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        <a name="line.148"></a>
+<span class="sourceLineNo">149</span>                switch(dt) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                case Dataset.INT8:<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        final byte[] oi8data = ((ByteDataset) result).data;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        it.setOutputDouble(false);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        <a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        while (it.hasNext()) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                oi8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        break;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                case Dataset.INT16:<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        final short[] oi16data = ((ShortDataset) result).data;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        it.setOutputDouble(false);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        <a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        while (it.hasNext()) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                                oi16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        break;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                case Dataset.INT32:<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        final int[] oi32data = ((IntegerDataset) result).data;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        it.setOutputDouble(false);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        <a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        while (it.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                oi32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        break;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                case Dataset.INT64:<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        final long[] oi64data = ((LongDataset) result).data;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        it.setOutputDouble(false);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        <a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        while (it.hasNext()) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                oi64data[it.oIndex] = Math.abs(it.aLong);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        break;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                case Dataset.ARRAYINT8:<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        final byte[] oai8data = ((CompoundByteDataset) result).data;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        it.setOutputDouble(false);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        <a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        if (is == 1) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                while (it.hasNext()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        } else if (as == 1) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                while (it.hasNext()) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        byte ox = (byte) Math.abs(it.aLong);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                                oai8data[it.oIndex + j] = ox;<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>                        } else {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                while (it.hasNext()) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                                oai8data[it.oIndex + j] = (byte) Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                case Dataset.ARRAYINT16:<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        final short[] oai16data = ((CompoundShortDataset) result).data;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        it.setOutputDouble(false);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        <a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        if (is == 1) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                while (it.hasNext()) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        } else if (as == 1) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                while (it.hasNext()) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                        short ox = (short) Math.abs(it.aLong);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                                oai16data[it.oIndex + j] = ox;<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>                        } else {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                while (it.hasNext()) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                                oai16data[it.oIndex + j] = (short) Math.abs(da.getElementLongAbs(it.aIndex + 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>                        }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        break;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                case Dataset.ARRAYINT32:<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).data;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        it.setOutputDouble(false);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        <a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        if (is == 1) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                while (it.hasNext()) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        } else if (as == 1) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                while (it.hasNext()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                        int ox = (int) Math.abs(it.aLong);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                                oai32data[it.oIndex + j] = ox;<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>                                while (it.hasNext()) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                                oai32data[it.oIndex + j] = (int) Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                case Dataset.ARRAYINT64:<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        final long[] oai64data = ((CompoundLongDataset) result).data;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        it.setOutputDouble(false);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        <a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        if (is == 1) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                while (it.hasNext()) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        } else if (as == 1) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                while (it.hasNext()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                        long ox = Math.abs(it.aLong);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                                oai64data[it.oIndex + j] = ox;<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>                        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                while (it.hasNext()) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                                oai64data[it.oIndex + j] = Math.abs(da.getElementLongAbs(it.aIndex + j));<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>                        break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                case Dataset.FLOAT32:<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        final float[] of32data = ((FloatDataset) result).data;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        if (as == 1) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                while (it.hasNext()) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        of32data[it.oIndex] = (float) (Math.abs(it.aDouble));<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>                                        of32data[it.oIndex] = (float) (Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1)));<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>                        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        break;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                case Dataset.FLOAT64:<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        final double[] of64data = ((DoubleDataset) result).data;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        if (as == 1) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                while (it.hasNext()) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        of64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        } else {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                while (it.hasNext()) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        of64data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<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>                        break;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                case Dataset.ARRAYFLOAT32:<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).data;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        if (is == 1) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                while (it.hasNext()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                        oaf32data[it.oIndex] = (float) (Math.abs(it.aDouble));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        } else if (as == 1) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                while (it.hasNext()) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                        float ox = (float) (Math.abs(it.aDouble));<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                                oaf32data[it.oIndex + j] = ox;<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 {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                while (it.hasNext()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                        oaf32data[it.oIndex] = (float) Math.abs(it.aDouble);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                                oaf32data[it.oIndex + j] = (float) Math.abs(da.getElementDoubleAbs(it.aIndex + j));<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>                        break;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                case Dataset.ARRAYFLOAT64:<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).data;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        if (is == 1) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                while (it.hasNext()) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        } else if (as == 1) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                while (it.hasNext()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                        final double ix = it.aDouble;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                        double ox = Math.abs(ix);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                                oaf64data[it.oIndex + j] = ox;<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>                        } else {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                while (it.hasNext()) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                                oaf64data[it.oIndex + j] = Math.abs(da.getElementDoubleAbs(it.aIndex + j));<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>                        break;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                case Dataset.COMPLEX64:<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        final float[] oc64data = ((ComplexFloatDataset) result).data;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        if (as == 1) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                while (it.hasNext()) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        oc64data[it.oIndex] = (float) Math.abs(it.aDouble);<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>                                while (it.hasNext()) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        oc64data[it.oIndex] = (float) Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<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>                        break;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                case Dataset.COMPLEX128:<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).data;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        if (as == 1) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                                while (it.hasNext()) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                                        oc128data[it.oIndex] = Math.abs(it.aDouble);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        } else {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                while (it.hasNext()) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                        oc128data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<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>                        break;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                default:<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        throw new IllegalArgumentException("abs supports integer, compound integer, real, compound real, complex datasets only");<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>                addFunctionName(result, "abs");<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return result;<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>        /**<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @param a<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         * @return a^*, complex conjugate of a<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        public static Dataset conjugate(final Object a) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return conjugate(a, 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>         * @param a<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * @return a^*, complex conjugate of a<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         */<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        public static Dataset conjugate(final Object a, final Dataset o) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                int at = da.getDType();<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                IndexIterator it1 = da.getIterator();<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, true);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                Dataset result = it.getOutput();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>                switch (at) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                case Dataset.COMPLEX64:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        for (int i = 0; it1.hasNext();) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                                c64data[i++] = (float) da.getElementDoubleAbs(it1.index);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                c64data[i++] = (float) -da.getElementDoubleAbs(it1.index+1);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        break;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                case Dataset.COMPLEX128:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        for (int i = 0; it1.hasNext();) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                c128data[i++] = da.getElementDoubleAbs(it1.index);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                c128data[i++] = -da.getElementDoubleAbs(it1.index+1);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        break;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                default:<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        result = da;<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 result;<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>        /**<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * @param a side of right-angled triangle<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * @param b side of right-angled triangle<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         */<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public static Dataset hypot(final Object a, final Object b) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return hypot(a, b, null);<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 a side of right-angled triangle<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @param b side of right-angled triangle<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public static Dataset hypot(final Object a, final Object b, final Dataset o) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                final Dataset result = it.getOutput();<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                final int is = result.getElementsPerItem();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                final int as = da.getElementsPerItem();<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                final int bs = db.getElementsPerItem();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                final int dt = result.getDType();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                switch (dt) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                case Dataset.BOOL:<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        while (it.hasNext()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                bdata[it.oIndex] = Math.hypot(it.aDouble, it.bDouble) != 0;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        break;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                case Dataset.INT8:<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        while (it.hasNext()) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                i8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        break;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                case Dataset.INT16:<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        while (it.hasNext()) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                i16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        break;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                case Dataset.INT32:<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        <a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        while (it.hasNext()) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                i32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        break;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                case Dataset.INT64:<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        while (it.hasNext()) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                i64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        }<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        break;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                case Dataset.FLOAT32:<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        while (it.hasNext()) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                f32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        break;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                case Dataset.FLOAT64:<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        while (it.hasNext()) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                f64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        break;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                case Dataset.ARRAYINT8:<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        if (is == 1) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                while (it.hasNext()) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        } else if (as == 1) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                while (it.hasNext()) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                while (it.hasNext()) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                while (it.hasNext()) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                        break;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                case Dataset.ARRAYINT16:<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        if (is == 1) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                while (it.hasNext()) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        } else if (as == 1) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                while (it.hasNext()) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                while (it.hasNext()) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                while (it.hasNext()) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                        break;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                case Dataset.ARRAYINT32:<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        if (is == 1) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                while (it.hasNext()) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        } else if (as == 1) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                while (it.hasNext()) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                while (it.hasNext()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                        ai32data[it.oIndex] = (int) 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>                                                ai32data[it.oIndex + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                while (it.hasNext()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                        break;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                case Dataset.ARRAYINT64:<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        if (is == 1) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                while (it.hasNext()) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        } else if (as == 1) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                while (it.hasNext()) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                }<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        } else if (bs == 1) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                while (it.hasNext()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                while (it.hasNext()) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        break;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                case Dataset.ARRAYFLOAT32:<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        if (is == 1) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                while (it.hasNext()) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        } else if (as == 1) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                while (it.hasNext()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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>                        } else if (bs == 1) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                while (it.hasNext()) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                while (it.hasNext()) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + 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>                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        break;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                case Dataset.ARRAYFLOAT64:<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        if (is == 1) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                while (it.hasNext()) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        } else if (as == 1) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                while (it.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                a64data[it.oIndex + j] = Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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>                        } else if (bs == 1) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                while (it.hasNext()) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                while (it.hasNext()) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        a64data[it.oIndex] = 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>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j), 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>                        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        break;<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                default:<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        throw new UnsupportedOperationException("hypot does not support this dataset type");<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>                addFunctionName(da, db, result, "hypot");<a name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span>                return result;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>        }<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>         * @param a opposite side of right-angled triangle<a name="line.692"></a>
+<span class="sourceLineNo">693</span>         * @param b adjacent side of right-angled triangle<a name="line.693"></a>
+<span class="sourceLineNo">694</span>         * @return angle of triangle: atan(b/a)<a name="line.694"></a>
+<span class="sourceLineNo">695</span>         */<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        public static Dataset arctan2(final Object a, final Object b) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                return arctan2(a, b, null);<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>         * @param a opposite side of right-angled triangle<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         * @param b adjacent side of right-angled triangle<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         * @return angle of triangle: atan(b/a)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         */<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        public static Dataset arctan2(final Object a, final Object b, final Dataset o) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.708"></a>
+<span class="sourceLineNo">709</span><a name="line.709"></a>
+<span class="sourceLineNo">710</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                final Dataset result = it.getOutput();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                final int is = result.getElementsPerItem();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                final int as = da.getElementsPerItem();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                final int bs = db.getElementsPerItem();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                final int dt = result.getDType();<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                switch (dt) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                case Dataset.BOOL:<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        while (it.hasNext()) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                bdata[it.oIndex] = Math.atan2(it.aDouble, it.bDouble) != 0;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        break;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                case Dataset.INT8:<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        while (it.hasNext()) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                i8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        break;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                case Dataset.INT16:<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        while (it.hasNext()) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                i16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        break;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                case Dataset.INT32:<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        <a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        while (it.hasNext()) {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                i32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        }<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        break;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                case Dataset.INT64:<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        while (it.hasNext()) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                i64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        break;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                case Dataset.FLOAT32:<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.753"></a>
+<span class="sourceLineNo">754</span><a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        while (it.hasNext()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                f32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        break;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                case Dataset.FLOAT64:<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        while (it.hasNext()) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                f64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        break;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                case Dataset.ARRAYINT8:<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.767"></a>
+<span class="sourceLineNo">768</span><a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        if (is == 1) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                while (it.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        } else if (as == 1) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                while (it.hasNext()) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                while (it.hasNext()) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                while (it.hasNext()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + 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>                        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        break;<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                case Dataset.ARRAYINT16:<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        if (is == 1) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                while (it.hasNext()) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                        ai16data[it.oIndex] = (short) 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>                        } else if (as == 1) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                        }<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        } else if (bs == 1) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                        } else {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                while (it.hasNext()) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                case Dataset.ARRAYINT32:<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        if (is == 1) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                while (it.hasNext()) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        } else if (as == 1) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (it.hasNext()) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        ai32data[it.oIndex] = (int) 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>                                                ai32data[it.oIndex + j] = (int) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (it.hasNext()) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                        }<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>                                while (it.hasNext()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<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>                        }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        break;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                case Dataset.ARRAYINT64:<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        if (is == 1) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                while (it.hasNext()) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                }<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        } else if (as == 1) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                while (it.hasNext()) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<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>                        } else if (bs == 1) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                while (it.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<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>                                while (it.hasNext()) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j)));<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                        }<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>                        break;<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                case Dataset.ARRAYFLOAT32:<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        if (is == 1) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                while (it.hasNext()) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        } else if (as == 1) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                while (it.hasNext()) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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 if (bs == 1) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                while (it.hasNext()) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                                a32data[it.oIndex + j] = (float) 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>                                        a32data[it.oIndex] = (float) 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>                                                a32data[it.oIndex + j] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<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>                        }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        break;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                case Dataset.ARRAYFLOAT64:<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        if (is == 1) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        } else if (as == 1) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                while (it.hasNext()) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                                a64data[it.oIndex + j] = Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<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>                        } else if (bs == 1) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                while (it.hasNext()) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<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>                        } else {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                while (it.hasNext()) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<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>                        }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        break;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                default:<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        throw new UnsupportedOperationException("atan2 does not support multiple-element dataset");<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>                addFunctionName(da, db, result, "atan2");<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>                return result;<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>         * Create a dataset of the arguments from a complex dataset<a name="line.956"></a>
+<span class="sourceLineNo">957</span>         * @param a<a name="line.957"></a>
+<span class="sourceLineNo">958</span>         * @return dataset of angles in radians<a name="line.958"></a>
+<span class="sourceLineNo">959</span>         */<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public static Dataset angle(final Object a) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return angle(a, false, 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>         * Create a dataset of the arguments from a complex dataset<a name="line.965"></a>
+<span class="sourceLineNo">966</span>         * @param a<a name="line.966"></a>
+<span class="sourceLineNo">967</span>         * @param inDegrees if true then return angles in degrees else in radians<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         * @return dataset of angles<a name="line.968"></a>
+<span class="sourceLineNo">969</span>         */<a name="line.969"></a>
+<span class="sourceLineNo">970</span>        public static Dataset angle(final Object a, final boolean inDegrees) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return angle(a, inDegrees, null);<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>        /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>         * Create a dataset of the arguments from a complex dataset<a name="line.975"></a>
+<span class="sourceLineNo">976</span>         * @param a<a name="line.976"></a>
+<span class="sourceLineNo">977</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.977"></a>
+<span class="sourceLineNo">978</span>         * @return dataset of angles in radians<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         */<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        public static Dataset angle(final Object a, final Dataset o) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                return angle(a, false, o);<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>        /**<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * Create a dataset of the arguments from a complex dataset<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * @param a<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param inDegrees if true then return angles in degrees else in radians<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * @return dataset of angles<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        public static Dataset angle(final Object a, final boolean inDegrees, final Dataset o) {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>                if (!da.isComplex()) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        throw new UnsupportedOperationException("angle does not support this dataset type");<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>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, false, false);<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                final Dataset result = it.getOutput();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final int is = result.getElementsPerItem();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                final int dt = result.getDType();<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        <a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                switch(dt) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                case Dataset.INT8:<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        final byte[] oi8data = ((ByteDataset) result).data;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        it.setOutputDouble(false);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        if (inDegrees) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                while (it.hasNext()) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        oi8data[it.oIndex] = (byte) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<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>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        oi8data[it.oIndex] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                        break;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                case Dataset.INT16:<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        final short[] oi16data = ((ShortDataset) result).data;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        it.setOutputDouble(false);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        if (inDegrees) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                while (it.hasNext()) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        oi16data[it.oIndex] = (short) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        } else {<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                while (it.hasNext()) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        oi16data[it.oIndex] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                        break;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                case Dataset.INT32:<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        final int[] oi32data = ((IntegerDataset) result).data;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        it.setOutputDouble(false);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span><a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        if (inDegrees) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                while (it.hasNext()) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        oi32data[it.oIndex] = (int) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        } else {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                while (it.hasNext()) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        oi32data[it.oIndex] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                        break;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                case Dataset.INT64:<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        final long[] oi64data = ((LongDataset) result).data;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                        it.setOutputDouble(false);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        if (inDegrees) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                while (it.hasNext()) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                        oi64data[it.oIndex] = toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                        } else {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                while (it.hasNext()) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        oi64data[it.oIndex] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                        break;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                case Dataset.ARRAYINT8:<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        final byte[] oai8data = ((CompoundByteDataset) result).data;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        it.setOutputDouble(false);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        if (inDegrees) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                while (it.hasNext()) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                        final byte ox = (byte) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                                oai8data[it.oIndex + j] = ox;<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>                                while (it.hasNext()) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        final byte ox = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                oai8data[it.oIndex + j] = ox;<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>                        break;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                case Dataset.ARRAYINT16:<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        final short[] oai16data = ((CompoundShortDataset) result).data;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        it.setOutputDouble(false);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span><a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        if (inDegrees) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                while (it.hasNext()) {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        final short ox = (short) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                                oai16data[it.oIndex + j] = ox;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        } else {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                while (it.hasNext()) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        final short ox = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                oai16data[it.oIndex + j] = ox;<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>                        break;<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                case Dataset.ARRAYINT32:<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).data;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                        it.setOutputDouble(false);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span><a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        if (inDegrees) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                while (it.hasNext()) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        final int ox = (int) toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                                oai32data[it.oIndex + j] = ox;<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>                        } else {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                while (it.hasNext()) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        final int ox = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                                oai32data[it.oIndex + j] = ox;<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>                        break;<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                case Dataset.ARRAYINT64:<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        final long[] oai64data = ((CompoundLongDataset) result).data;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        it.setOutputDouble(false);<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        if (inDegrees) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                while (it.hasNext()) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        final long ox = toLong(Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                oai64data[it.oIndex + j] = ox;<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>                        } else {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                while (it.hasNext()) {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                        final long ox = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        }<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>                        break;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                case Dataset.FLOAT32:<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        final float[] of32data = ((FloatDataset) result).data;<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span><a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        if (inDegrees) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                while (it.hasNext()) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        of32data[it.oIndex] = (float) Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                        } else {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                while (it.hasNext()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                        of32data[it.oIndex] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<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>                        break;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                case Dataset.FLOAT64:<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        final double[] of64data = ((DoubleDataset) result).data;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (inDegrees) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                while (it.hasNext()) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                        of64data[it.oIndex] = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<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>                                        of64data[it.oIndex] = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<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>                        break;<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                case Dataset.ARRAYFLOAT32:<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).data;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        if (inDegrees) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (it.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        final float ox = (float) Math.toDegrees(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>                                                oaf32data[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>                        } else {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                while (it.hasNext()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                        final float ox = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                oaf32data[it.oIndex + j] = ox;<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>                        }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        break;<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                case Dataset.ARRAYFLOAT64:<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).data;<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        if (inDegrees) {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                while (it.hasNext()) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        final double ox = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                }<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        } else {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                while (it.hasNext()) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        final double ox = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                        break;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                case Dataset.COMPLEX64:<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                        final float[] oc64data = ((ComplexFloatDataset) result).data;<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        if (inDegrees) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                while (it.hasNext()) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                        oc64data[it.oIndex]      = (float) Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                        oc64data[it.oIndex + 1]  = 0;<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>                                while (it.hasNext()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        oc64data[it.oIndex]      = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        oc64data[it.oIndex + 1]  = 0;<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>                        break;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                case Dataset.COMPLEX128:<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).data;<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span><a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (inDegrees) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        oc128data[it.oIndex]     = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        oc128data[it.oIndex + 1] = 0;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        } else {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                while (it.hasNext()) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        oc128data[it.oIndex]     = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        oc128data[it.oIndex + 1] = 0;<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>                default:<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        throw new IllegalArgumentException("angle does not support this dataset type");<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>                addFunctionName(result, "angle");<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>        <a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                return result;<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>
+<span class="sourceLineNo">1244</span>         * Create a phase only dataset. NB it will contain NaNs if there are any items with zero amplitude<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>         * @param a dataset<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>         * @param keepZeros if true then zero items are returned as zero rather than NaNs<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>         * @return complex dataset where items have unit amplitude<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>         */<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>        public static Dataset phaseAsComplexNumber(final Object a, final boolean keepZeros) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                return phaseAsComplexNumber(a, null, keepZeros);<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>        /**<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * Create a phase only dataset. NB it will contain NaNs if there are any items with zero amplitude<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @param a dataset<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>         * @param keepZeros if true then zero items are returned as zero rather than NaNs<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>         * @return complex dataset where items have unit amplitude<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>         */<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>        public static Dataset phaseAsComplexNumber(final Object a, final Dataset o, final boolean keepZeros) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                if (!da.isComplex()) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        throw new IllegalArgumentException("Input dataset is not of complex type");<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                Dataset result = o == null ? DatasetFactory.zeros(da) : o;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                if (!result.isComplex()) {<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                        throw new IllegalArgumentException("Output dataset is not of complex type");<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                }<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                final int dt = result.getDType();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, result);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                switch (dt) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                case Dataset.COMPLEX64:<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                        float[] z64data = ((ComplexFloatDataset) result).getData();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        <a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        if (keepZeros) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                while (it.hasNext()) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        double rr = it.aDouble;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        double am = Math.hypot(rr, ri);<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                        if (am == 0) {<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                z64data[it.oIndex]     = 0;<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                z64data[it.oIndex + 1] = 0;<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                        } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                                z64data[it.oIndex]     = (float) (rr/am);<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                z64data[it.oIndex + 1] = (float) (ri/am);<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>                                while (it.hasNext()) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        double rr = it.aDouble;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                        double am = Math.hypot(rr, ri);<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        z64data[it.oIndex]     = (float) (rr/am);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                        z64data[it.oIndex + 1] = (float) (ri/am);<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>                        break;<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                case Dataset.COMPLEX128:<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        double[] z128data = ((ComplexDoubleDataset) result).getData();<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>        <a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        if (keepZeros) {<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        double rr = it.aDouble;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        double am = Math.hypot(rr, ri);<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        if (am == 0) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                                z128data[it.oIndex]     = 0;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                z128data[it.oIndex + 1] = 0;<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                        } else {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                z128data[it.oIndex]     = rr / am;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                z128data[it.oIndex + 1] = ri / am;<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>                        } else {<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                while (it.hasNext()) {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        double rr = it.aDouble;<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                        double am = Math.hypot(rr, ri);<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                        z128data[it.oIndex]     = rr / am;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                        z128data[it.oIndex + 1] = ri / am;<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>                        break;<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>                addFunctionName(result, "phase");<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                return result;<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>        /**<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>         * Adds all sets passed in together<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>         * <a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>         * The first IDataset must cast to Dataset<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>         * <a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>         * For memory efficiency sake if add(...) is called with a<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>         * set of size one, no clone is done, the original object is<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>         * returned directly. Otherwise a new data set is returned,<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>         * the sum of those passed in.<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>         * <a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>         * @param sets<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>         * @param requireClone<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * @return sum of collection<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         */<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        public static Dataset add(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                if (sets.isEmpty())<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        return null;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sets.size() == 1)<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        <a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                Dataset sum = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        <a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                while (it.hasNext()) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                        add(sum, it.next(), sum);<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>                return sum;<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>        /**<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>         * Multiplies all sets passed in together<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>         * <a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>         * The first IDataset must cast to Dataset<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>         * <a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>         * @param sets<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>         * @param requireClone<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>         * @return product of collection<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>         */<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        public static Dataset multiply(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                if (sets.isEmpty())<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return null;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                if (sets.size() == 1)<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                Dataset product = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        <a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        multiply(product, it.next(), product);<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>                return product;<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>         * Linearly interpolate values at points in a 1D dataset corresponding to given coordinates.<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>         * @param x input 1-D coordinate dataset (must be ordered)<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>         * @param d input 1-D dataset<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>         * @param x0 coordinate values<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>         * @param left value to use when x0 lies left of domain. If null, then interpolate to zero by using leftmost interval<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>         * @param right value to use when x0 lies right of domain. If null, then interpolate to zero by using rightmost interval<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>         * @return interpolated values<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>         */<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>        public static Dataset interpolate(final Dataset x, final Dataset d, final IDataset x0, Number left, Number right) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                assert x.getRank() == 1;<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                assert d.getRank() == 1;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        <a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, x0.getShape());<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                Monotonicity mono = Comparisons.findMonotonicity(x);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                if (mono == Monotonicity.NOT_ORDERED) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                        throw new IllegalArgumentException("Dataset x must be ordered");<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                DoubleDataset dx = (DoubleDataset) DatasetUtils.cast(x, Dataset.FLOAT64);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                Dataset dx0 = DatasetUtils.convertToDataset(x0);<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                if (x == dx) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        dx = (DoubleDataset) x.flatten();<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                }<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                double[] xa = dx.getData();<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                int s = xa.length - 1;<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                boolean isReversed = mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.NONINCREASING;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                if (isReversed) {<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                        double[] txa = xa.clone();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        for (int i = 0; i &lt;= s; i++) { // reverse order<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                txa[s - i] = xa[i];<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                        xa = txa;<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>                IndexIterator it = dx0.getIterator();<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                int k = -1;<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                        k++;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                        double v = dx0.getElementDoubleAbs(it.index);<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                        int i = Arrays.binarySearch(xa, v);<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                        if (i &lt; 0) {<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                // i = -(insertion point) - 1<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                if (i == -1) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                        if (left != null) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                r.setAbs(k, left.doubleValue());<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                continue;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                        final double d1 = xa[0] - xa[1];<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                        double t = d1 - v + xa[0];<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                        if (t &gt;= 0)<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                continue; // sets to zero<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                        t /= d1;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? s : 0));<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                } else if (i == -s - 2) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                        if (right != null) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                r.setAbs(k, right.doubleValue());<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>                                        final double d1 = xa[s] - xa[s - 1];<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        double t = d1 - v + xa[s];<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        if (t &lt;= 0)<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                continue; // sets to zero<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                        t /= d1;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? 0 : s));<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                } else {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                        i = -i - 1;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        double t = (xa[i] - v)/(xa[i] - xa[i - 1]);<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                        if (isReversed) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                i = s - i;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                r.setAbs(k, t * d.getDouble(i + 1) + (1 - t) * d.getDouble(i));<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                r.setAbs(k, (1 - t) * d.getDouble(i) + t * d.getDouble(i - 1));<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 {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                r.setAbs(k, d.getDouble(isReversed ? s - i : i));<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                        }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                }<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                return r;<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>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is considered to have<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>         * zero support outside its bounds. Thus points just outside are interpolated from the boundary<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>         * value to zero.<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>         * @param d input dataset<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>         * @param x0 coordinate<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>         * @return interpolated value<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>         */<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        public static double interpolate(final Dataset d, final double x0) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                assert d.getRank() == 1;<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                final int i0 = (int) Math.floor(x0);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                final int e0 = d.getSize() - 1;<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                if (i0 &lt; -1 || i0 &gt; e0)<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                        return 0;<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                final double u0 = x0 - i0;<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span><a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                double r = 0;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                if (u0 &gt; 0) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1));<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                } else {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                        r = f1;<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                return r;<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>        /**<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * Linearly interpolate a value at a point in a 1D dataset with a mask. The dataset is considered<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * to have zero support outside its bounds. Thus points just outside are interpolated from the<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * boundary value to zero.<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * @param d input dataset<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * @param m mask dataset<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         * @param x0 coordinate<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * @return interpolated value<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         */<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0) {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                assert d.getRank() == 1;<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                assert m.getRank() == 1;<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                final int i0 = (int) Math.floor(x0);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                final int e0 = d.getSize() - 1;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                if (i0 &lt; -1 || i0 &gt; e0)<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                        return 0;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span><a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                final double u0 = x0 - i0;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span><a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                double r = 0;<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0) * m.getDouble(i0);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                if (u0 &gt; 0) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1) * m.getDouble(i0 + 1));<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                } else {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                        r = f1;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                return r;<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>        /**<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>         * Linearly interpolate an array of values at a point in a compound 1D dataset. The dataset is<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>         * considered to have zero support outside its bounds. Thus points just outside are interpolated<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>         * from the boundary value to zero.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>         * @param values interpolated array<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>         * @param d input dataset<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>         * @param x0 coordinate<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>         */<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                assert d.getRank() == 1;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span><a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                final int is = d.getElementsPerItem();<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                if (is != values.length)<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                final double[] f1, f2;<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        <a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                final int i0 = (int) Math.floor(x0);<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                final int e0 = d.getSize() - 1;<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                if (i0 &lt; -1 || i0 &gt; e0) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                        Arrays.fill(values, 0);<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        return;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                final double u0 = x0 - i0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        <a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                if (u0 &gt; 0) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                        f1 = new double[is];<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                        if (i0 &gt;= 0)<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                d.getDoubleArray(f1, i0);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        double t = 1 - u0;<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        if (i0 == e0) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                        values[j] = t * f1[j];<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                        } else {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                f2 = new double[is];<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                d.getDoubleArray(f2, i0 + 1);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                        values[j] = t * f1[j] + u0 * f2[j];<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>                        if (i0 &gt;= 0)<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                d.getDoubleArray(values, i0);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                        else<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                Arrays.fill(values, 0);<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><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        /**<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>         * Linearly interpolate a value at a point in a 2D dataset. The dataset is considered to have<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>         * zero support outside its bounds. Thus points just outside are interpolated from the boundary<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>         * value to zero.<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>         * @param d input dataset<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>         * @param x0 coordinate<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>         * @param x1 coordinate<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>         * @return bilinear interpolation<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>         */<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>        public static double interpolate(final Dataset d, final double x0, final double x1) {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                final int[] s = d.getShape();<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                assert s.length == 2;<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        <a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                final int e0 = s[0] - 1;<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                final int e1 = s[1] - 1;<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                final int i0 = (int) Math.floor(x0);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                final int i1 = (int) Math.floor(x1);<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                final double u0 = x0 - i0;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                final double u1 = x1 - i1;<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1)<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                        return 0;<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                // use bilinear interpolation<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                double r = 0;<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                final double f1, f2, f3, f4;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                if (u1 &gt; 0) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                        if (u0 &gt; 0) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                if (i0 == e0) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                        f2 = 0;<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        f4 = 0;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                } else {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                        f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                        if (i1 == e1) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                f4 = 0;<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                f3 = 0;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        } else {<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                                f4 = d.getDouble(i0 + 1, i1 + 1);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                                f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1);<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>                                r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        } else {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                f3 = i0 &lt; 0 || i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                r = (1 - u1) * f1 + u1 * f3;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                        }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                } else { // exactly on axis 1<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                        if (u0 &gt; 0) {<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        } else { // exactly on axis 0<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                r = f1;<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                        }<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                return r;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span><a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        /**<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>         * Linearly interpolate a value at a point in a 2D dataset with a mask. The dataset is considered<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>         * to have zero support outside its bounds. Thus points just outside are interpolated from the<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>         * boundary value to zero.<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>         * @param d input dataset<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>         * @param m mask dataset<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>         * @param x0 coordinate<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>         * @param x1 coordinate<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>         * @return bilinear interpolation<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>         */<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0, final double x1) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                if (m == null)<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                        return interpolate(d, x0, x1);<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>        <a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                final int[] s = d.getShape();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                assert s.length == 2;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                assert m.getRank() == 2;<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                final int e0 = s[0] - 1;<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                final int e1 = s[1] - 1;<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                final int i0 = (int) Math.floor(x0);<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                final int i1 = (int) Math.floor(x1);<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                final double u0 = x0 - i0;<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                final double u1 = x1 - i1;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                        return 0;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span><a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                // use bilinear interpolation<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                double r = 0;<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                final double f1, f2, f3, f4;<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1) * m.getDouble(i0, i1);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                if (u1 &gt; 0) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        if (i0 == e0) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                f2 = 0;<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                f4 = 0;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        } else {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                if (i1 == e1) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        f4 = 0;<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        f3 = 0;<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        f4 = d.getDouble(i0 + 1, i1 + 1) * m.getDouble(i0 + 1, i1 + 1);<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                        r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                } else { // exactly on axis 1<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        if (u0 &gt; 0) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                        } else { // exactly on axis 0<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                r = f1;<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>                return r;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>        }<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>         * Linearly interpolate an array of values at a point in a compound 2D dataset. The dataset is<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         * considered to have zero support outside its bounds. Thus points just outside are interpolated<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>         * from the boundary value to zero.<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>         * @param values bilinear interpolated array<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>         * @param d<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>         * @param x0<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>         * @param x1<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>         */<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                final int[] s = d.getShapeRef();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                assert s.length == 2;<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span><a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                final int is = d.getElementsPerItem();<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                if (is != values.length)<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span><a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                final int e0 = s[0] - 1;<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                final int e1 = s[1] - 1;<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                final int i0 = (int) Math.floor(x0);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                final int i1 = (int) Math.floor(x1);<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                final double u0 = x0 - i0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                final double u1 = x1 - i1;<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                        Arrays.fill(values, 0);<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        return;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                // use bilinear interpolation<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                double[] f1 = new double[is];<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0)<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        d.getDoubleArray(f1, i0, i1);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>        <a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                if (u1 &gt; 0) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        if (u0 &gt; 0) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                double[] f2 = new double[is];<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                double[] f3 = new double[is];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                double[] f4 = new double[is];<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                if (i0 != e0) {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        if (i1 != e1)<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                                d.getDoubleArray(f3, i0 + 1, i1 + 1);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        if (i1 &gt;= 0)<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                                d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1)<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                final double t0 = 1 - u0;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                final double t1 = 1 - u1;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                final double w1 = t0 * t1;<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                final double w2 = t0 * u1;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                final double w3 = u0 * u1;<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                final double w4 = u0 * t1;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        values[j] = w1 * f1[j] + w2 * f2[j] + w3 * f3[j] + w4 * f4[j];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                        } else {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                double[] f2 = new double[is];<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1)<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                final double t1 = 1 - u1;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                        values[j] = t1 * f1[j] + u1 * f2[j];<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                } else { // exactly on axis 1<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        if (u0 &gt; 0) {<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                double[] f4 = new double[is];<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (i0 != e0 &amp;&amp; i1 &gt;= 0)<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                final double t0 = 1 - u0;<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                        values[j] = t0 * f1[j] + u0 * f4[j];<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                        } else { // exactly on axis 0<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        d.getDoubleArray(values, i0, i1);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                else<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                        Arrays.fill(values, 0);<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><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>        /**<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>         * Linearly interpolate a value at a point in a n-D dataset. The dataset is considered to have<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>         * zero support outside its bounds. Thus points just outside are interpolated from the boundary<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>         * value to zero. The number of coordinates must match the rank of the dataset.<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>         * @param d input dataset<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>         * @param x coordinates<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>         * @return interpolated value<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>         */<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        public static double interpolate(final Dataset d, final double... x) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                return interpolate(d, null, x);<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>         * Linearly interpolate a value at a point in a n-D dataset with a mask. The dataset is considered to have<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>         * zero support outside its bounds. Thus points just outside are interpolated from the boundary<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>         * value to zero. The number of coordinates must match the rank of the dataset.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>         * @param d input dataset<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>         * @param m mask dataset (can be null)<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>         * @param x coordinates<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>         * @return interpolated value<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>         */<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        public static double interpolate(final Dataset d, final Dataset m, final double... x) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                int r = d.getRank();<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                if (r != x.length) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                }<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                switch (r) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                case 1:<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                        return m == null ? interpolate(d, x[0]) : interpolate(d, m, x[0]);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                case 2:<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                        return m == null ? interpolate(d, x[0], x[1]) : interpolate(d, m, x[0], x[1]);<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>                if (m != null &amp;&amp; r != m.getRank()) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        throw new IllegalArgumentException("Rank of mask dataset must be equal to rank of dataset");<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                }<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span><a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                // now do it iteratively<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                int[] l = new int[r];       // lower indexes<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                double[] f = new double[r]; // fractions<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                for (int i = 0; i &lt; r; i++) {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        double xi = x[i];<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        l[i] = (int) Math.floor(xi);<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                        f[i] = xi - l[i];<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                }<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span><a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                int[] s = d.getShape();<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                <a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                int n = 1 &lt;&lt; r;<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                double[] results = new double[n];<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                // iterate over permutations {l} and {l+1}<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                int[] twos = new int[r];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                Arrays.fill(twos, 2);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                PositionIterator it = new PositionIterator(twos);<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                int[] ip = it.getPos();<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                int j = 0;<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                if (m == null) {<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                        while (it.hasNext()) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                int[] p = l.clone();<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                boolean omit = false;<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        int pi = p[i] + ip[i];<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                omit = true;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                break;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                        p[i] = pi;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                }<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                results[j++] = omit ? 0 : d.getDouble(p);<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                        }<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                } else {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                        while (it.hasNext()) {<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                int[] p = l.clone();<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                boolean omit = false;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        int pi = p[i] + ip[i];<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                omit = true;<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                                break;<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                        }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                        p[i] = pi;<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                }<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                results[j++] = omit ? 0 : d.getDouble(p) * m.getDouble(p);<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><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                // reduce recursively<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                        results = combine(results, f[i], 1 &lt;&lt; i);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                return results[0];<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>        private static double[] combine(double[] values, double f, int n) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                double g = 1 - f;<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                double[] results = new double[n];<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                for (int j = 0; j &lt; n; j++) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        int tj = 2 * j;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        results[j] = g * values[tj] + f * values[tj + 1];<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>                return results;<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>         * Linearly interpolate an array of values at a point in a compound n-D dataset. The dataset is<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>         * considered to have zero support outside its bounds. Thus points just outside are interpolated<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>         * from the boundary value to zero.<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>         * @param values linearly interpolated array<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>         * @param d<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>         * @param x<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>         */<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double... x) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                int r = d.getRank();<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                if (r != x.length) {<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span><a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                switch (r) {<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                case 1:<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                        interpolate(values, d, x[0]);<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                        return;<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                case 2:<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        interpolate(values, d, x[0], x[1]);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        return;<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                }<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span><a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                final int is = d.getElementsPerItem();<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                if (is != values.length)<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span><a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                // now do it iteratively<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                int[] l = new int[r];       // lower indexes<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                double[] f = new double[r]; // fractions<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                for (int i = 0; i &lt; r; i++) {<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                        double xi = x[i];<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                        l[i] = (int) Math.floor(xi);<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                        f[i] = xi - l[i];<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>                int[] s = d.getShape();<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                <a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                int n = 1 &lt;&lt; r;<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                double[][] results = new double[n][is];<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span><a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                // iterate over permutations {l} and {l+1}<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                int[] twos = new int[r];<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                Arrays.fill(twos, 2);<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                PositionIterator it = new PositionIterator(twos);<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                int[] ip = it.getPos();<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                int j = 0;<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                while (it.hasNext()) {<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                        int[] p = l.clone();<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        boolean omit = false;<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                int pi = p[i] + ip[i];<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                                if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                        omit = true;<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        break;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                p[i] = pi;<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        }<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                        if (!omit) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                d.getDoubleArray(results[j++], p);<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><a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                // reduce recursively<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                        results = combineArray(is, results, f[i], 1 &lt;&lt; i);<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                }<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                for (int k = 0; k &lt; is; k++) {<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                        values[k] = results[0][k];<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>        private static double[][] combineArray(int is, double[][] values, double f, int n) {<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                double g = 1 - f;<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                double[][] results = new double[n][is];<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                for (int j = 0; j &lt; n; j++) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                        int tj = 2 * j;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        for (int k = 0; k &lt; is; k++) {<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                results[j][k] = g * values[tj][k] + f * values[tj + 1][k];<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                        }<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                }<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span><a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                return results;<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>        }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>        /**<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is considered to have<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>         * zero support outside its bounds. Thus points just outside are interpolated from the boundary<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>         * value to zero.<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>         * @param d input dataset<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>         * @param x0 coordinate<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>         * @return interpolated value<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>         * @deprecated Use {@link #interpolate(Dataset, double)}<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>         */<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>        @Deprecated<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>        public static double getLinear(final IDataset d, final double x0) {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                return interpolate(DatasetUtils.convertToDataset(d), x0);<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>        }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span><a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>        /**<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>         * Linearly interpolate a value at a point in a compound 1D dataset. The dataset is considered<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>         * to have zero support outside its bounds. Thus points just outside are interpolated from the<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>         * boundary value to zero.<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>         * @param values interpolated array<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>         * @param d input dataset<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>         * @param x0 coordinate<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>         * @deprecated Use {@link #interpolate(double[], CompoundDataset, double)}<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>         */<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        @Deprecated<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        public static void getLinear(final double[] values, final CompoundDataset d, final double x0) {<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                interpolate(values, d, x0);<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>         * Interpolated a value from 2D dataset<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>         * @param d input dataset<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>         * @param x0 coordinate<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>         * @param x1 coordinate<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>         * @return bilinear interpolation<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>         * @deprecated Use {@link #interpolate(Dataset, double, double)}<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>         */<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>        @Deprecated<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>        public static double getBilinear(final IDataset d, final double x0, final double x1) {<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                return interpolate(DatasetUtils.convertToDataset(d), x0, x1);<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>        }<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span><a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>        /**<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>         * Interpolated a value from 2D dataset with mask<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>         * @param d input dataset<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>         * @param m mask dataset<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>         * @param x0 coordinate<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>         * @param x1 coordinate<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>         * @return bilinear interpolation<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>         * @deprecated Use {@link #interpolate(Dataset, Dataset, double, double)}<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>         */<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>        @Deprecated<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>        public static double getBilinear(final IDataset d, final IDataset m, final double x0, final double x1) {<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                return interpolate(DatasetUtils.convertToDataset(d), DatasetUtils.convertToDataset(m), x0, x1);<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>        /**<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>         * Interpolated a value from 2D compound dataset<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>         * @param values bilinear interpolated array<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>         * @param d<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>         * @param x0<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>         * @param x1<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>         * @deprecated Use {@link #interpolate(double[], CompoundDataset, double, double)}<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>         */<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        @Deprecated<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        public static void getBilinear(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                interpolate(values, d, x0, x1);<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        }<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>         * generate binomial coefficients with negative sign:<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>         * &lt;p&gt;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>         * &lt;pre&gt;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>         *  (-1)^i n! / ( i! (n-i)! )<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>         * &lt;/pre&gt;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>         * @param n<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>         * @return array of coefficients<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>         */<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        private static int[] bincoeff(final int n) {<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                final int[] b = new int[n+1];<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                final int hn = n/2;<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span><a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                int bc = 1;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                b[0] = bc;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                for (int i = 1; i &lt;= hn; i++) {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                        bc = -(bc*(n-i+1))/i;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                        b[i] = bc;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                if (n % 2 != 0) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                        for (int i = hn+1; i &lt;= n; i++) {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                b[i] = -b[n-i];<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                        }<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                } else {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                        for (int i = hn+1; i &lt;= n; i++) {<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                b[i] = b[n-i];<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                        }<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                }<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                return b;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>        }<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span><a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>        /**<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>         * 1st order discrete difference of dataset along flattened dataset using finite difference<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>         * @param a is 1d dataset<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>         * @param out is 1d dataset<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>         */<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>        private static void difference(final Dataset a, final Dataset out) {<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                final int isize = a.getElementsPerItem();<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span><a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                final IndexIterator it = a.getIterator();<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                if (!it.hasNext())<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                        return;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                int oi = it.index;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span><a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                switch (a.getDType()) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                case Dataset.INT8:<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                        for (int i = 0; it.hasNext();) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                oi8data[i++] = (byte) (i8data[it.index] - i8data[oi]);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                oi = it.index;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                        }<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                        break;<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                case Dataset.INT16:<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                        for (int i = 0; it.hasNext();) {<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                oi16data[i++] = (short) (i16data[it.index] - i16data[oi]);<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                oi = it.index;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                        }<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                        break;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                case Dataset.INT32:<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                        for (int i = 0; it.hasNext();) {<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                                oi32data[i++] = i32data[it.index] - i32data[oi];<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                oi = it.index;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                        }<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                        break;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                case Dataset.INT64:<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                        for (int i = 0; it.hasNext();) {<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                oi64data[i++] = i64data[it.index] - i64data[oi];<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                oi = it.index;<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                        }<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                        break;<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                case Dataset.ARRAYINT8:<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                        for (int i = 0; it.hasNext();) {<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                        oai8data[i++] = (byte) (ai8data[it.index + k] - ai8data[oi++]);<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                }<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                oi = it.index;<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                        }<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                        break;<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                case Dataset.ARRAYINT16:<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                        for (int i = 0; it.hasNext();) {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                        oai16data[i++] = (short) (ai16data[it.index + k] - ai16data[oi++]);<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                                }<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                                oi = it.index;<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                        }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                        break;<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                case Dataset.ARRAYINT32:<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>                        for (int i = 0; it.hasNext();) {<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>                                        oai32data[i++] = ai32data[it.index + k] - ai32data[oi++];<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>                                }<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>                                oi = it.index;<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                        }<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                        break;<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                case Dataset.ARRAYINT64:<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>                        for (int i = 0; it.hasNext();) {<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>                                        oai64data[i++] = ai64data[it.index + k] - ai64data[oi++];<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>                                }<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>                                oi = it.index;<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>                        }<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>                        break;<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>                case Dataset.FLOAT32:<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>                        for (int i = 0; it.hasNext();) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                                of32data[i++] = f32data[it.index] - f32data[oi];<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                                oi = it.index;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                        }<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                        break;<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                case Dataset.FLOAT64:<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                        for (int i = 0; it.hasNext();) {<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                                of64data[i++] = f64data[it.index] - f64data[oi];<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                                oi = it.index;<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                        }<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>                        break;<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>                case Dataset.COMPLEX64:<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>                        for (int i = 0; it.hasNext();) {<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>                                oc64data[i++] = c64data[it.index] - c64data[oi];<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>                                oc64data[i++] = c64data[it.index + 1] - c64data[oi + 1];<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>                                oi = it.index;<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>                        }<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>                        break;<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>                case Dataset.COMPLEX128:<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>                        for (int i = 0; it.hasNext();) {<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                                oc128data[i++] = c128data[it.index] - c128data[oi];<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>                                oc128data[i++] = c128data[it.index + 1] - c128data[oi + 1];<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>                                oi = it.index;<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>                        }<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>                        break;<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>                case Dataset.ARRAYFLOAT32:<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>                        for (int i = 0; it.hasNext();) {<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>                                        oaf32data[i++] = af32data[it.index + k] - af32data[oi++];<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>                                }<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>                                oi = it.index;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>                        }<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>                        break;<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>                case Dataset.ARRAYFLOAT64:<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>                        for (int i = 0; it.hasNext();) {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>                                        oaf64data[i++] = af64data[it.index + k] - af64data[oi++];<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>                                }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>                                oi = it.index;<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>                        }<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>                        break;<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>                default:<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>                }<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>        }<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span><a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>        /**<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>         * Get next set of indexes<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>         * @param it<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>         * @param indexes<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>         * @return true if there is more<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>         */<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>        private static boolean nextIndexes(IndexIterator it, int[] indexes) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>                if (!it.hasNext())<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>                        return false;<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>                int m = indexes.length;<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>                int i = 0;<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>                for (i = 0; i &lt; m - 1; i++) {<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>                        indexes[i] = indexes[i+1];<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>                }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>                indexes[i] = it.index;<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>                return true;<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>        }<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span><a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>        <a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>        /**<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>         * General order discrete difference of dataset along flattened dataset using finite difference<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>         * @param a is 1d dataset<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>         * @param out is 1d dataset<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>         * @param n order of difference<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>         */<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>        private static void difference(final Dataset a, final Dataset out, final int n) {<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>                if (n == 1) {<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>                        difference(a, out);<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                        return;<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>                }<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span><a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                final int isize = a.getElementsPerItem();<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span><a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>                final int[] coeff = bincoeff(n);<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                final int m = n + 1;<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                final int[] indexes = new int[m]; // store for index values<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span><a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                final IndexIterator it = a.getIterator();<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>                        indexes[i] = it.index;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>                        it.hasNext();<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>                }<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>                indexes[n] = it.index;<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span><a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>                switch (a.getDType()) {<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>                case Dataset.INT8:<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>                                int ox = 0;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>                                        ox += i8data[indexes[j]] * coeff[j];<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>                                }<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>                                oi8data[i++] = (byte) ox;<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                        }<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                        break;<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                case Dataset.INT16:<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                                int ox = 0;<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                                        ox += i16data[indexes[j]] * coeff[j];<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                                }<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                                oi16data[i++] = (short) ox;<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>                        }<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>                        break;<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>                case Dataset.INT32:<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                                int ox = 0;<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>                                        ox += i32data[indexes[j]] * coeff[j];<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>                                }<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>                                oi32data[i++] = ox;<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>                        }<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>                        break;<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>                case Dataset.INT64:<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>                                long ox = 0;<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>                                        ox += i64data[indexes[j]] * coeff[j];<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>                                }<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                                oi64data[i++] = ox;<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                        }<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                        break;<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                case Dataset.ARRAYINT8:<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>                        int[] box = new int[isize];<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>                                Arrays.fill(box, 0);<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>                                        double c = coeff[j];<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>                                        int l = indexes[j];<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                                                box[k] += ai8data[l++] * c;<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>                                        }<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>                                }<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>                                        oai8data[i++] = (byte) box[k];<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>                                }<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>                        }<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>                        break;<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>                case Dataset.ARRAYINT16:<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>                        int[] sox = new int[isize];<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>                                Arrays.fill(sox, 0);<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>                                        double c = coeff[j];<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>                                        int l = indexes[j];<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>                                                sox[k] += ai16data[l++] * c;<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>                                        }<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                                }<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>                                        oai16data[i++] = (short) sox[k];<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>                                }<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>                        }<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>                        break;<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>                case Dataset.ARRAYINT32:<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>                        int[] iox = new int[isize];<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>                                Arrays.fill(iox, 0);<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>                                        double c = coeff[j];<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                                        int l = indexes[j];<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                                                iox[k] += ai32data[l++] * c;<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                                        }<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                                }<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                                        oai32data[i++] = iox[k];<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                                }<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                        }<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>                        break;<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                case Dataset.ARRAYINT64:<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                        long[] lox = new long[isize];<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                                Arrays.fill(lox, 0);<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                                        double c = coeff[j];<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                                        int l = indexes[j];<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>                                                lox[k] += ai64data[l++] * c;<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>                                        }<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>                                }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>                                        oai64data[i++] = lox[k];<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>                        break;<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>                case Dataset.FLOAT32:<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>                                float ox = 0;<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>                                        ox += f32data[indexes[j]] * coeff[j];<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>                                }<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>                                of32data[i++] = ox;<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>                        }<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>                        break;<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>                case Dataset.FLOAT64:<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                                double ox = 0;<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>                                        ox += f64data[indexes[j]] * coeff[j];<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>                                }<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>                                of64data[i++] = ox;<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>                        }<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>                        break;<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>                case Dataset.COMPLEX64:<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>                                float ox = 0;<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>                                float oy = 0;<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>                                        int l = indexes[j];<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>                                        ox += c64data[l++] * coeff[j];<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>                                        oy += c64data[l] * coeff[j];<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>                                }<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>                                oc64data[i++] = ox;<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>                                oc64data[i++] = oy;<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>                        }<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>                        break;<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>                case Dataset.COMPLEX128:<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>                                double ox = 0;<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>                                double oy = 0;<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                                        int l = indexes[j];<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                                        ox += c128data[l++] * coeff[j];<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>                                        oy += c128data[l] * coeff[j];<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>                                }<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>                                oc128data[i++] = ox;<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>                                oc128data[i++] = oy;<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>                        }<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>                        break;<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>                case Dataset.ARRAYFLOAT32:<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>                        float[] fox = new float[isize];<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>                                Arrays.fill(fox, 0);<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>                                        double c = coeff[j];<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>                                        int l = indexes[j];<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>                                                fox[k] += af32data[l++] * c;<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>                                        }<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>                                }<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>                                        oaf32data[i++] = fox[k];<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>                                }<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>                        }<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>                        break;<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>                case Dataset.ARRAYFLOAT64:<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>                        double[] dox = new double[isize];<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>                                Arrays.fill(dox, 0);<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>                                        double c = coeff[j];<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>                                        int l = indexes[j];<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>                                                dox[k] += af64data[l++] * c;<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>                                        }<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>                                }<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>                                        oaf64data[i++] = dox[k];<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>                                }<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>                        }<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>                        break;<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                default:<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                        throw new UnsupportedOperationException("difference does not support multiple-element dataset");<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                }<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>        }<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span><a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>        /**<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>         * Discrete difference of dataset along axis using finite difference<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>         * @param a<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>         * @param n order of difference<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>         * @param axis<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>         * @return difference<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>         */<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>        @SuppressWarnings("deprecation")<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>        public static Dataset difference(Dataset a, final int n, int axis) {<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>                Dataset ds;<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>                final int dt = a.getDType();<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>                final int rank = a.getRank();<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>                final int is = a.getElementsPerItem();<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span><a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>                if (axis &lt; 0) {<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>                        axis += rank;<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                }<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                        throw new IllegalArgumentException("Axis is out of range");<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                }<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>                <a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                int[] nshape = a.getShape();<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                if (nshape[axis] &lt;= n) {<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>                        nshape[axis] = 0;<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                        return DatasetFactory.zeros(is, nshape, dt);<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                }<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span><a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                nshape[axis] -= n;<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                ds = DatasetFactory.zeros(is, nshape, dt);<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                if (rank == 1) {<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                        difference(DatasetUtils.convertToDataset(a), ds, n);<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                } else {<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>                        final Dataset src = DatasetFactory.zeros(is, new int[] { a.getShapeRef()[axis] }, dt);<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>                        final Dataset dest = DatasetFactory.zeros(is, new int[] { nshape[axis] }, dt);<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>                        final int[] pos = pi.getPos();<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>                        final boolean[] hit = pi.getOmit();<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>                        while (pi.hasNext()) {<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>                                difference(src, dest, n);<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>                        }<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>                }<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span><a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                return ds;<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>        }<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span><a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>        private static double SelectedMean(Dataset data, int Min, int Max) {<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span><a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                double result = 0.0;<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>                        // clip i appropriately, imagine that effectively the two ends continue<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>                        // straight out.<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>                        int pos = i;<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>                        if (pos &lt; 0) {<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>                                pos = 0;<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>                        } else if (pos &gt;= imax) {<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>                                pos = imax - 1;<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>                        }<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>                        result += data.getElementDoubleAbs(pos);<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>                // now the sum is complete, average the values.<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>                result /= (Max - Min) + 1;<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>                return result;<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>        }<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span><a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>        private static void SelectedMeanArray(double[] out, Dataset data, int Min, int Max) {<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>                final int isize = out.length;<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                        out[j] = 0.;<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span><a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                        // clip i appropriately, imagine that effectively the two ends continue<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                        // straight out.<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                        int pos = i*isize;<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>                        if (pos &lt; 0) {<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>                                pos = 0;<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>                        } else if (pos &gt;= imax) {<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>                                pos = imax - isize;<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>                        }<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>                        for (int j = 0; j &lt; isize; j++)<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>                                out[j] += data.getElementDoubleAbs(pos+j);<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>                }<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span><a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>                // now the sum is complete, average the values.<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>                double norm = 1./ (Max - Min + 1.);<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>                        out[j] *= norm;<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span><a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>        }<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span><a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>        /**<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>         * Calculates the derivative of a line described by two datasets (x,y) given a spread of n either<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>         * side of the point<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>         * <a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>         * @param x<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>         *            The x values of the function to take the derivative of.<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>         * @param y<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>         *            The y values of the function to take the derivative of.<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>         * @param n<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>         *            The spread the derivative is calculated from, i.e. the<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>         *            smoothing, the higher the value, the more smoothing occurs.<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>         * @return A dataset which contains all the derivative point for point.<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>         */<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>        @SuppressWarnings("deprecation")<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>        public static Dataset derivative(Dataset x, Dataset y, int n) {<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                if (x.getRank() != 1 || y.getRank() != 1) {<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>                        throw new IllegalArgumentException("Only one dimensional dataset supported");<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                }<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                if (y.getSize() &gt; x.getSize()) {<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                        throw new IllegalArgumentException("Length of x dataset should be greater than or equal to y's");<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                }<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                int dtype = y.getDType();<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                Dataset result;<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                switch (dtype) {<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                case Dataset.BOOL:<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                case Dataset.INT8:<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                case Dataset.INT16:<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                case Dataset.ARRAYINT8:<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                case Dataset.ARRAYINT16:<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                        result = DatasetFactory.zeros(y, Dataset.FLOAT32);<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                        break;<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>                case Dataset.INT32:<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                case Dataset.INT64:<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                case Dataset.ARRAYINT32:<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>                case Dataset.ARRAYINT64:<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>                        result = DatasetFactory.zeros(y, Dataset.FLOAT64);<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>                        break;<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>                case Dataset.FLOAT32:<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>                case Dataset.FLOAT64:<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>                case Dataset.COMPLEX64:<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>                case Dataset.COMPLEX128:<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>                case Dataset.ARRAYFLOAT32:<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>                case Dataset.ARRAYFLOAT64:<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                        result = DatasetFactory.zeros(y);<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                        break;<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>                default:<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>                        throw new UnsupportedOperationException("derivative does not support multiple-element dataset");<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>                }<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span><a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>                final int isize = y.getElementsPerItem();<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>                if (isize == 1) {<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>                                double LeftValue = SelectedMean(y, i - n, i - 1);<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>                                double RightValue = SelectedMean(y, i + 1, i + n);<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>                                double LeftPosition = SelectedMean(x, i - n, i - 1);<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>                                double RightPosition = SelectedMean(x, i + 1, i + n);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span><a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                                // now the values and positions are calculated, the derivative can be<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                                // calculated.<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>                                result.set(((RightValue - LeftValue) / (RightPosition - LeftPosition)), i);<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>                        }<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>                } else {<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>                        double[] leftValues = new double[isize];<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>                        double[] rightValues = new double[isize];<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>                                SelectedMeanArray(leftValues, y, i - n, i - 1);<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>                                SelectedMeanArray(rightValues, y, i + 1, i + n);<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>                                double delta = SelectedMean(x, i - n, i - 1);<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>                                delta = 1./(SelectedMean(x, i + 1, i + n) - delta);<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>                                for (int j = 0; j &lt; isize; j++) {<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                                        rightValues[j] -= leftValues[j];<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>                                        rightValues[j] *= delta;<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                                }<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>                                result.set(rightValues, i);<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><a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>                // set the name based on the changes made<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>                result.setName(y.getName() + "'");<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span><a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>                return result;<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>        }<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span><a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>        /**<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>         * Discrete difference of dataset along axis using finite central difference<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>         * @param a<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>         * @param axis<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>         * @return difference<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>         */<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>        @SuppressWarnings("deprecation")<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>        public static Dataset centralDifference(Dataset a, int axis) {<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>                Dataset ds;<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>                final int dt = a.getDType();<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>                final int rank = a.getRank();<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>                final int is = a.getElementsPerItem();<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span><a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>                if (axis &lt; 0) {<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>                        axis += rank;<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                }<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                        throw new IllegalArgumentException("Axis is out of range");<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>                final int len = a.getShapeRef()[axis];<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>                if (len &lt; 2) {<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                }<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                ds = DatasetFactory.zeros(is, a.getShapeRef(), dt);<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                if (rank == 1) {<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>                        centralDifference(a, ds);<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>                } else {<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>                        final Dataset src = DatasetFactory.zeros(is, new int[] { len }, dt);<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>                        final Dataset dest = DatasetFactory.zeros(is, new int[] { len }, dt);<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>                        final int[] pos = pi.getPos();<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>                        final boolean[] hit = pi.getOmit();<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>                        while (pi.hasNext()) {<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>                                centralDifference(src, dest);<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<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><a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>                return ds;<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>        /**<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>         * 1st order discrete difference of dataset along flattened dataset using central difference<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>         * @param a is 1d dataset<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>         * @param out is 1d dataset<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>         */<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>        private static void centralDifference(final Dataset a, final Dataset out) {<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>                final int isize = a.getElementsPerItem();<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>                final int dt = a.getDType();<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span><a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>                final int nlen = (out.getShapeRef()[0] - 1)*isize;<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>                if (nlen &lt; 1) {<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>                }<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>                final IndexIterator it = a.getIterator();<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>                if (!it.hasNext())<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>                        return;<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>                int oi = it.index;<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>                if (!it.hasNext())<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>                        return;<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>                int pi = it.index;<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span><a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>                switch (dt) {<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>                case Dataset.INT8:<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>                        oi8data[0] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>                                oi8data[i] = (byte) ((i8data[it.index] - i8data[oi])/2);<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>                                oi = pi;<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>                                pi = it.index;<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>                        }<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>                        oi8data[nlen] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>                        break;<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>                case Dataset.INT16:<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>                        oi16data[0] = (short) (i16data[pi] - i16data[oi]);<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>                                oi16data[i] = (short) ((i16data[it.index] - i16data[oi])/2);<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>                                oi = pi;<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>                                pi = it.index;<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>                        }<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>                        oi16data[nlen] = (short) (i16data[pi] - i16data[oi]);<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>                        break;<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>                case Dataset.INT32:<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>                        oi32data[0] = i32data[pi] - i32data[oi];<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>                                oi32data[i] = (i32data[it.index] - i32data[oi])/2;<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>                                oi = pi;<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>                                pi = it.index;<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>                        }<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>                        oi32data[nlen] = i32data[pi] - i32data[oi];<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>                        break;<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>                case Dataset.INT64:<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>                        oi64data[0] = i64data[pi] - i64data[oi];<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>                                oi64data[i] = (i64data[it.index] - i64data[oi])/2;<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>                                oi = pi;<a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>                                pi = it.index;<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>                        }<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>                        oi64data[nlen] = i64data[pi] - i64data[oi];<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>                        break;<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>                case Dataset.ARRAYINT8:<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>                                oai8data[k] = (byte) (ai8data[pi+k] - ai8data[oi+k]);<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span>                        }<a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>                        for (int i = isize; it.hasNext();) {<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>                                int l = it.index;<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>                                        oai8data[i++] = (byte) ((ai8data[l++] - ai8data[oi++])/2);<a name="line.2749"></a>
+<span class="sourceLineNo">2750</span>                                }<a name="line.2750"></a>
+<span class="sourceLineNo">2751</span>                                oi = pi;<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>                                pi = it.index;<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>                        }<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>                                oai8data[nlen+k] = (byte) (ai8data[pi+k] - ai8data[oi+k]);<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>                        }<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>                        break;<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>                case Dataset.ARRAYINT16:<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>                                oai16data[k] = (short) (ai16data[pi+k] - ai16data[oi+k]);<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>                        }<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>                        for (int i = isize; it.hasNext();) {<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>                                int l = it.index;<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>                                        oai16data[i++] = (short) ((ai16data[l++] - ai16data[oi++])/2);<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>                                }<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>                                oi = pi;<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>                                pi = it.index;<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>                        }<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>                                oai16data[nlen+k] = (short) (ai16data[pi+k] - ai16data[oi+k]);<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>                        }<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>                        break;<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>                case Dataset.ARRAYINT32:<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2777"></a>
+<span class="sourceLineNo">2778</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2778"></a>
+<span class="sourceLineNo">2779</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2779"></a>
+<span class="sourceLineNo">2780</span>                                oai32data[k] = ai32data[pi+k] - ai32data[oi+k];<a name="line.2780"></a>
+<span class="sourceLineNo">2781</span>                        }<a name="line.2781"></a>
+<span class="sourceLineNo">2782</span>                        for (int i = isize; it.hasNext();) {<a name="line.2782"></a>
+<span class="sourceLineNo">2783</span>                                int l = it.index;<a name="line.2783"></a>
+<span class="sourceLineNo">2784</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2784"></a>
+<span class="sourceLineNo">2785</span>                                        oai32data[i++] = (ai32data[l++] - ai32data[oi++])/2;<a name="line.2785"></a>
+<span class="sourceLineNo">2786</span>                                }<a name="line.2786"></a>
+<span class="sourceLineNo">2787</span>                                oi = pi;<a name="line.2787"></a>
+<span class="sourceLineNo">2788</span>                                pi = it.index;<a name="line.2788"></a>
+<span class="sourceLineNo">2789</span>                        }<a name="line.2789"></a>
+<span class="sourceLineNo">2790</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2790"></a>
+<span class="sourceLineNo">2791</span>                                oai32data[nlen+k] = ai32data[pi+k] - ai32data[oi+k];<a name="line.2791"></a>
+<span class="sourceLineNo">2792</span>                        }<a name="line.2792"></a>
+<span class="sourceLineNo">2793</span>                        break;<a name="line.2793"></a>
+<span class="sourceLineNo">2794</span>                case Dataset.ARRAYINT64:<a name="line.2794"></a>
+<span class="sourceLineNo">2795</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2795"></a>
+<span class="sourceLineNo">2796</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2796"></a>
+<span class="sourceLineNo">2797</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2797"></a>
+<span class="sourceLineNo">2798</span>                                oai64data[k] = ai64data[pi+k] - ai64data[oi+k];<a name="line.2798"></a>
+<span class="sourceLineNo">2799</span>                        }<a name="line.2799"></a>
+<span class="sourceLineNo">2800</span>                        for (int i = isize; it.hasNext();) {<a name="line.2800"></a>
+<span class="sourceLineNo">2801</span>                                int l = it.index;<a name="line.2801"></a>
+<span class="sourceLineNo">2802</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2802"></a>
+<span class="sourceLineNo">2803</span>                                        oai64data[i++] = (ai64data[l++] - ai64data[oi++])/2;<a name="line.2803"></a>
+<span class="sourceLineNo">2804</span>                                }<a name="line.2804"></a>
+<span class="sourceLineNo">2805</span>                                oi = pi;<a name="line.2805"></a>
+<span class="sourceLineNo">2806</span>                                pi = it.index;<a name="line.2806"></a>
+<span class="sourceLineNo">2807</span>                        }<a name="line.2807"></a>
+<span class="sourceLineNo">2808</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2808"></a>
+<span class="sourceLineNo">2809</span>                                oai64data[nlen+k] = ai64data[pi+k] - ai64data[oi+k];<a name="line.2809"></a>
+<span class="sourceLineNo">2810</span>                        }<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>                        break;<a name="line.2811"></a>
+<span class="sourceLineNo">2812</span>                case Dataset.FLOAT32:<a name="line.2812"></a>
+<span class="sourceLineNo">2813</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2813"></a>
+<span class="sourceLineNo">2814</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2814"></a>
+<span class="sourceLineNo">2815</span>                        of32data[0] = f32data[pi] - f32data[oi];<a name="line.2815"></a>
+<span class="sourceLineNo">2816</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2816"></a>
+<span class="sourceLineNo">2817</span>                                of32data[i] = (f32data[it.index] - f32data[oi])*0.5f;<a name="line.2817"></a>
+<span class="sourceLineNo">2818</span>                                oi = pi;<a name="line.2818"></a>
+<span class="sourceLineNo">2819</span>                                pi = it.index;<a name="line.2819"></a>
+<span class="sourceLineNo">2820</span>                        }<a name="line.2820"></a>
+<span class="sourceLineNo">2821</span>                        of32data[nlen] = f32data[pi] - f32data[oi];<a name="line.2821"></a>
+<span class="sourceLineNo">2822</span>                        break;<a name="line.2822"></a>
+<span class="sourceLineNo">2823</span>                case Dataset.FLOAT64:<a name="line.2823"></a>
+<span class="sourceLineNo">2824</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2824"></a>
+<span class="sourceLineNo">2825</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2825"></a>
+<span class="sourceLineNo">2826</span>                        of64data[0] = f64data[pi] - f64data[oi];<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span>                                of64data[i] = (f64data[it.index] - f64data[oi])*0.5f;<a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>                                oi = pi;<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span>                                pi = it.index;<a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>                        }<a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>                        of64data[nlen] = f64data[pi] - f64data[oi];<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>                        break;<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>                case Dataset.COMPLEX64:<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>                        oc64data[0] = c64data[pi] - c64data[oi];<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>                        oc64data[1] = c64data[pi+1] - c64data[oi+1];<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>                        for (int i = 2; it.hasNext();) {<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span>                                oc64data[i++] = (c64data[it.index] - c64data[oi++])*0.5f;<a name="line.2840"></a>
+<span class="sourceLineNo">2841</span>                                oc64data[i++] = (c64data[it.index + 1] - c64data[oi])*0.5f;<a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>                                oi = pi;<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span>                                pi = it.index;<a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>                        }<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>                        oc64data[nlen] = c64data[pi] - c64data[oi];<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>                        oc64data[nlen+1] = c64data[pi+1] - c64data[oi+1];<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span>                        break;<a name="line.2847"></a>
+<span class="sourceLineNo">2848</span>                case Dataset.COMPLEX128:<a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span>                        oc128data[0] = c128data[pi] - c128data[oi];<a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>                        oc128data[1] = c128data[pi+1] - c128data[oi+1];<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>                        for (int i = 2; it.hasNext();) {<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>                                oc128data[i++] = (c128data[it.index] - c128data[oi++])*0.5f;<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>                                oc128data[i++] = (c128data[it.index + 1] - c128data[oi])*0.5f;<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span>                                oi = pi;<a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>                                pi = it.index;<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>                        }<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>                        oc128data[nlen] = c128data[pi] - c128data[oi];<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>                        oc128data[nlen+1] = c128data[pi+1] - c128data[oi+1];<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>                        break;<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span>                case Dataset.ARRAYFLOAT32:<a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>                                oaf32data[k] = af32data[pi+k] - af32data[oi+k];<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>                        }<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span>                        for (int i = isize; it.hasNext();) {<a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>                                int l = it.index;<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span>                                        oaf32data[i++] = (af32data[l++] - af32data[oi++])*0.5f;<a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>                                }<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>                                oi = pi;<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>                                pi = it.index;<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>                        }<a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>                                oaf32data[nlen+k] = af32data[pi+k] - af32data[oi+k];<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>                        }<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>                        break;<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>                case Dataset.ARRAYFLOAT64:<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2883"></a>
+<span class="sourceLineNo">2884</span>                                oaf64data[k] = af64data[pi+k] - af64data[oi+k];<a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>                        }<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>                        for (int i = isize; it.hasNext();) {<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>                                int l = it.index;<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span>                                        oaf64data[i++] = (af64data[l++] - af64data[oi++])*0.5;<a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>                                }<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>                                oi = pi;<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>                                pi = it.index;<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>                        }<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>                                oaf64data[nlen+k] = af64data[pi+k] - af64data[oi+k];<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span>                        }<a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>                        break;<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>                default:<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span>                }<a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>        }<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span><a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>        /**<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>         * Calculate gradient (or partial derivatives) by central difference<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>         * @param y<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>         * @param x one or more datasets for dependent variables<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>         * @return a list of datasets (one for each dimension in y)<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>         */<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>        public static List&lt;Dataset&gt; gradient(Dataset y, Dataset... x) {<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>                final int rank = y.getRank();<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span><a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>                if (x.length &gt; 0) {<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>                        if (x.length != rank) {<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>                                throw new IllegalArgumentException("Number of dependent datasets must be equal to rank of first argument");<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>                        }<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>                                int rx = x[a].getRank();<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>                                if (rx != rank &amp;&amp; rx != 1) {<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>                                        throw new IllegalArgumentException("Dependent datasets must be 1-D or match rank of first argument");<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>                                }<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>                                if (rx == 1) {<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span>                                        if (y.getShapeRef()[a] != x[a].getShapeRef()[0]) {<a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>                                                throw new IllegalArgumentException("Length of dependent dataset must match axis length");<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>                                        }<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>                                } else {<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>                                        y.checkCompatibility(x[a]);<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>                                }<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>                        }<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>                }<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span><a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>                List&lt;Dataset&gt; grad = new ArrayList&lt;Dataset&gt;(rank);<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span><a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>                for (int a = 0; a &lt; rank; a++) {<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>                        Dataset g = centralDifference(y, a);<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span>                        grad.add(g);<a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>                }<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span><a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>                if (x.length &gt; 0) {<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span>                                Dataset g = grad.get(a);<a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>                                Dataset dx = x[a];<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>                                int r = dx.getRank();<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>                                if (r == rank) {<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>                                        g.idivide(centralDifference(dx, a));<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>                                } else {<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>                                        final int dt = dx.getDType();<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>                                        final int is = dx.getElementsPerItem();<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>                                        @SuppressWarnings("deprecation")<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>                                        final Dataset bdx = DatasetFactory.zeros(is, y.getShapeRef(), dt);<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>                                        final PositionIterator pi = y.getPositionIterator(a);<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>                                        final int[] pos = pi.getPos();<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>                                        final boolean[] hit = pi.getOmit();<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span>                                        dx = centralDifference(dx, 0);<a name="line.2953"></a>
+<span class="sourceLineNo">2954</span><a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>                                        while (pi.hasNext()) {<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>                                                bdx.setItemsOnAxes(pos, hit, dx.getBuffer());<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>                                        }<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>                                        g.idivide(bdx);<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>                                }<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>                        }<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>                }<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>                return grad;<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>        }<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>}<a name="line.2964"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..0724ced
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html
new file mode 100644
index 0000000..4c1f132
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/NullStorelessUnivariateStatistic.html
@@ -0,0 +1,134 @@
+<!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.apache.commons.math3.exception.MathIllegalArgumentException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import org.apache.commons.math3.stat.descriptive.StorelessUnivariateStatistic;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>public class NullStorelessUnivariateStatistic implements StorelessUnivariateStatistic {<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>        @Override<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        public double evaluate(double[] arg0) throws MathIllegalArgumentException {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>                return 0;<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 double evaluate(double[] arg0, int arg1, int arg2) throws MathIllegalArgumentException {<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                return 0;<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 void clear() {<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>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public StorelessUnivariateStatistic copy() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return new NullStorelessUnivariateStatistic();<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 long getN() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return 0;<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>        @Override<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public double getResult() {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                return 0;<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 void increment(double arg0) {<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>        @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public void incrementAll(double[] arg0) throws MathIllegalArgumentException {<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>        @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public void incrementAll(double[] arg0, int arg1, int arg2) throws MathIllegalArgumentException {<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..5adbb52
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..0ded666
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,1039 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        } else {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                offset = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                stride = null;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                base = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                odata = data = createArray(size);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                IndexIterator iter = dataset.getIterator();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException(t);<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>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * Copy and cast a dataset to this class type<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param dataset<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        ObjectDatasetBase(final Dataset dataset) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                copyToView(dataset, this, true, false);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                offset = 0;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                stride = null;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                base = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        odata = data = createArray(size);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } catch (Throwable t) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException(t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                IndexIterator iter = dataset.getIterator();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        data[i] = dataset.getObjectAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @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><a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return true;<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                ObjectDatasetBase other = (ObjectDatasetBase) obj;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>//              if (size == 1) // for zero-rank datasets<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                IndexIterator iter = getIterator();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator oiter = other.getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (!data[iter.index].equals(other.data[oiter.index])) // OBJECT_UNEQUAL<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                return false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return true;<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 int hashCode() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return super.hashCode();<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 ObjectDatasetBase clone() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return new ObjectDatasetBase(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * sequences or arrays are padded with zeros.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         *<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @param obj<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @return dataset with contents given by input<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        static ObjectDatasetBase createFromObject(final Object obj) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                ObjectDatasetBase result = new ObjectDatasetBase();<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (obj != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        try {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                result.odata = result.data = createArray(result.size);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        } catch (Throwable t) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>        /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @param shape<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @return a dataset filled with ones<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        static ObjectDatasetBase ones(final int... shape) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new ObjectDatasetBase(shape).fill(1);<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 ObjectDatasetBase fill(final Object obj) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                setDirty();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                IndexIterator iter = getIterator();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                while (iter.hasNext()) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return data buffer as linear array<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public Object[] getData() { // PRIM_TYPE<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return data;<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>        @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        protected int getBufferLength() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                if (data == null)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        return 0;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return data.length;<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 ObjectDatasetBase getView(boolean deepCopyMetadata) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                ObjectDatasetBase view = new ObjectDatasetBase();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                view.setData();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                return view;<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>        /**<a name="line.257"></a>
+<span class="sourceLineNo">258</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.258"></a>
+<span class="sourceLineNo">259</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         *<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param index<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *            absolute index<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @return value<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public Object getAbs(final int index) { // PRIM_TYPE<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                return data[index];<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return false;<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 double getElementDoubleAbs(final int index) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return 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>        @Override<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public Object getObjectAbs(final int index) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                return data[index];<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>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public String getStringAbs(final int index) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return stringFormat == null ? String.format("%s", data[index]) : // FORMAT_STRING<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.295"></a>
+<span class="sourceLineNo">296</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.296"></a>
+<span class="sourceLineNo">297</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         *<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param index<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *            absolute index<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param val<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            new value<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public void setAbs(final int index, final Object val) { // PRIM_TYPE<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                setDirty();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                data[index] = val;<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                setDirty();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                Object[] dsrc = (Object[]) src; // PRIM_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>
+<span class="sourceLineNo">322</span>                setAbs(index, obj); // FROM_OBJECT<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>        /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return item in first position<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @since 2.0<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public Object get() { // PRIM_TYPE<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @return item in given position<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        public Object get(final int i) { // PRIM_TYPE<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                return data[get1DIndex(i)];<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>        /**<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param i<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param j<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in given position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        public Object get(final int i, final int j) { // PRIM_TYPE<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 Object get(final int... pos) { // PRIM_TYPE<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                return get(); // CLASS_TYPE<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>        @Override<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public Object getObject(final int i) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return get(i); // CLASS_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>        @Override<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        public Object getObject(final int i, final int j) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return get(i, j); // CLASS_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>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public Object getObject(final int... pos) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return get(pos); // CLASS_TYPE<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>        @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        public String getString() {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public String getString(final int i, final int j) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        public String getString(final int... pos) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                return getStringAbs(get1DIndex(pos));<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>        @Override<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public double getDouble() {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return 0;<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>        @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        public double getDouble(final int i) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                return 0;<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>        @Override<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public double getDouble(final int i, final int j) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return 0;<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>        public double getDouble(final int... pos) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return 0;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public float getFloat() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                return 0;<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>        @Override<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        public float getFloat(final int i) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return 0;<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>        @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        public float getFloat(final int i, final int j) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return 0;<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>        @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public float getFloat(final int... pos) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return 0;<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>        @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public long getLong() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return 0;<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>        @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        public long getLong(final int i) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                return 0;<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>        @Override<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public long getLong(final int i, final int j) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>        @Override<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        public long getLong(final int... pos) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                return 0;<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 int getInt() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return 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 int getInt(final int i) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return 0;<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 int getInt(final int i, final int j) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return 0;<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 int getInt(final int... pos) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return 0;<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>        @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        public short getShort() {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                return 0;<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>        @Override<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public short getShort(final int i) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return 0;<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 short getShort(final int i, final int j) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                return 0;<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 short getShort(final int... pos) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return 0;<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>        @Override<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        public byte getByte() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                return 0;<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>        @Override<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public byte getByte(final int i) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                return 0;<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>        @Override<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public byte getByte(final int i, final int j) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                return 0;<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>        @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        public byte getByte(final int... pos) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                return 0;<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 boolean getBoolean() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                return false;<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 boolean getBoolean(final int i) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                return false;<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 boolean getBoolean(final int i, final int j) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                return false;<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 boolean getBoolean(final int... pos) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                return false;<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>        /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         *<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @param value<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @since 2.0<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         */<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public void setItem(final Object value) { // PRIM_TYPE<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         *<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @param value<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param i<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        public void setItem(final Object value, final int i) { // PRIM_TYPE<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @param value<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @param i<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param j<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         */<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        public void setItem(final Object value, final int i, final int j) { // PRIM_TYPE<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                setAbs(get1DIndex(i, j), value);<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>        /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * Sets the value at a particular point to the passed value<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         *<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param pos<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public void setItem(final Object value, final int... pos) { // PRIM_TYPE<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setItem(obj); // FROM_OBJECT<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>        @Override<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        public void set(final Object obj, final int i) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                setItem(obj, i); // FROM_OBJECT<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>        @Override<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        public void set(final Object obj, final int i, final int j) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                setItem(obj, i, j); // FROM_OBJECT<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>        public void set(final Object obj, int... pos) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        pos = new int[shape.length];<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>                setItem(obj, pos); // FROM_OBJECT<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>        @Override<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public void resize(int... newShape) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                setDirty();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                final IndexIterator iter = getIterator();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final Object[] ndata; // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                try {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        ndata = createArray(nsize);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                } catch (Throwable t) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        throw new IllegalArgumentException(t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                size = nsize;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                shape = newShape;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                stride = null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                offset = 0;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                base = null;<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>        @Override<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        public ObjectDatasetBase sort(Integer axis) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setDirty();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                if (axis == null) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        if (stride == null) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                Arrays.sort(data);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        } else {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                ObjectDatasetBase ads = clone().sort(null);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                setSlicedView(getView(false), ads);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        }<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } else {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        axis = checkAxis(axis);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        <a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        ObjectDatasetBase ads = new ObjectDatasetBase(shape[axis]);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        int[] pos = pi.getPos();<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        boolean[] hit = pi.getOmit();<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        while (pi.hasNext()) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                Arrays.sort(ads.data);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 ObjectDatasetBase getUniqueItems() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                Set&lt;Object&gt; set = new TreeSet&lt;Object&gt;(); // CLASS_TYPE<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                IndexIterator it = getIterator();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                while (it.hasNext()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        set.add(data[it.index]);<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>                ObjectDataset u = new ObjectDataset(set.size()); // CLASS_TYPE<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                int i = 0;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                Object[] udata = u.getData(); // PRIM_TYPE<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (Object v : set) { // CLASS_TYPE<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        udata[i++] = v;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return u;<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 ObjectDatasetBase getSlice(final SliceIterator siter) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                ObjectDatasetBase result = new ObjectDatasetBase(siter.getShape());<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                Object[] rdata = result.data; // PRIM_TYPE<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        rdata[i] = data[siter.index];<a name="line.678"></a>
+<span class="sourceLineNo">679</span><a name="line.679"></a>
+<span class="sourceLineNo">680</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                return result;<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>        @Override<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                setDirty();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                IndexIterator riter = result.getIterator();<a name="line.687"></a>
+<span class="sourceLineNo">688</span><a name="line.688"></a>
+<span class="sourceLineNo">689</span>                Object[] rdata = ((ObjectDatasetBase) result).data; // PRIM_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        public ObjectDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                setDirty();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                if (obj instanceof Dataset) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        final Dataset ds = (Dataset) obj;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        if (length != ds.getSize()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                throw new IllegalArgumentException(<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.708"></a>
+<span class="sourceLineNo">709</span><a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                data[biter.index] = ds.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        while (biter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                data[biter.index] = dv;<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 this;<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>        @Override<a name="line.724"></a>
+<span class="sourceLineNo">725</span>        public ObjectDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                setDirty();<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                if (obj instanceof Dataset) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final Dataset ds = (Dataset) obj;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (index.getSize() != 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 items in index dataset 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 IntegerIterator iter = new IntegerIterator(index, size);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[iter.index] = ds.getObjectAbs(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 Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (iter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[iter.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 ObjectDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                final int[] pos = iter.getPos();<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>                if (obj instanceof Dataset) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final Dataset ds = (Dataset) obj;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                throw new IllegalArgumentException(<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                setItem(ds.getObjectAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        while (iter.hasNext()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                setItem(dv, pos);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                }<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                return this;<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>        ObjectDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                setDirty();<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                while (it.hasNext()) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        data[it.aIndex] = d.getObjectAbs(it.bIndex);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                }<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                return this;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>        @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        public ObjectDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                setDirty();<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                if (obj instanceof IDataset) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        final IDataset ds = (IDataset) obj;<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        final int[] oshape = ds.getShape();<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                throw new IllegalArgumentException(String.format(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                final Dataset ads = (Dataset) ds;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.806"></a>
+<span class="sourceLineNo">807</span><a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        data[siter.index] = ads.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        } else {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                final int[] pos = oiter.getPos();<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        data[siter.index] = ds.getObject(pos); // PRIM_TYPE<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        }<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                } else {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        try {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                Object v = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (siter.hasNext())<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        data[siter.index] = v;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        } catch (IllegalArgumentException e) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                Object[] ddata = (Object[]) dest.getBuffer(); // PRIM_TYPE<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setDirty();<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                Object[] sdata = (Object[]) src; // PRIM_TYPE<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        data[siter.index] = sdata[i];<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>        private List&lt;int[]&gt; findPositions(final Object value) { // PRIM_TYPE<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                IndexIterator iter = getIterator(true);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                if (data[iter.index] == value) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                        posns.add(pos.clone());<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>                return posns;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>        @Override<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>                if (max == null) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.888"></a>
+<span class="sourceLineNo">889</span><a name="line.889"></a>
+<span class="sourceLineNo">890</span>                        md.setMaximumPositions(max);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>                return max.get(0); // first maximum<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 int[] minPos(boolean... ignoreInvalids) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>                if (min == null) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        public boolean containsNans() {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                return false;<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>        @Override<a name="line.917"></a>
+<span class="sourceLineNo">918</span>        public boolean containsInfs() {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                return false;<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>        @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        public boolean containsInvalidNumbers() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                return false;<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>        @Override<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        public ObjectDatasetBase iadd(final Object b) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                return this;<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 ObjectDatasetBase isubtract(final Object b) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                return this;<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>        @Override<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        public ObjectDatasetBase imultiply(final Object b) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                return this;<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public ObjectDatasetBase idivide(final Object b) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return this;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public ObjectDatasetBase ifloor() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return this;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public ObjectDatasetBase iremainder(final Object b) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return this;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public ObjectDatasetBase ipower(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                return this;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                double sum = 0;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Operations.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Outliers.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..3e1a170
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..8c2f041
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/PositionIterator.html
@@ -0,0 +1,291 @@
+<!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><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * Constructor for an iterator over elements of a dataset that are within<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * the shape<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         *<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param shape<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public PositionIterator(int[] shape) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                this(new SliceND(shape), 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>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Constructor for an iterator over a single item broadcasted to given shape<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         *<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param offset offset to single item<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param shape<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        public PositionIterator(int offset, int[] shape) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                this(offset, new SliceND(shape), 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>         * Constructor for an iterator that misses out several axes<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param axes missing axes, can be null for full dataset<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        public PositionIterator(int[] shape, int... axes) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                this(new SliceND(shape), axes);<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>        /**<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * Constructor for an iterator that misses out several axes<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param shape<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param slice<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param axes missing axes<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        public PositionIterator(int[] shape, Slice[] slice, int[] axes) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                this(new SliceND(shape, slice), axes);<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>         * Constructor for an iterator that misses out several axes<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param start<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param stop<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param step<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param axes missing axes<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public PositionIterator(int[] shape, int[] start, int[] stop, int[] step, int[] axes) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                this(new SliceND(shape, start, stop, step), axes);<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>         * Constructor for an iterator that misses out several axes<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param slice<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param axes missing axes<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public PositionIterator(SliceND slice, int... axes) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this(0, slice, axes);<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>        /**<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * Constructor for an iterator that misses out several axes<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * <a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param offset offset to start with<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param slice<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @param axes missing axes<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public PositionIterator(int offset, SliceND slice, int... axes) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                this.offset = offset;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                int[] oshape = slice.getShape();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                start = slice.getStart();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                stop  = slice.getStop();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                step  = slice.getStep();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                for (int s : step) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        if (s &lt; 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                throw new UnsupportedOperationException("Negative steps not implemented");<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>                int rank = oshape.length;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                endrank = rank - 1;<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>                omit = new boolean[rank];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                shape = oshape.clone();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (axes != null) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        for (int a : axes) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                                if (a &lt; 0) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                        a += rank;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                        omit[a] = true;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                        shape[a] = 1;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                } else if (a &gt; endrank) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<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>
+<span class="sourceLineNo">142</span>                pos = new int[rank];<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>                reset();<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 boolean hasNext() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                // now move on one position<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                if (once) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        once = false;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        return true;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        if (omit[j]) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                continue;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        pos[j] += step[j];<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                pos[j] = start[j];<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                return true;<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>                return false;<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>        @Override<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        public int[] getPos() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                return pos;<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>        /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @return omit array - array where true means miss out<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        public boolean[] getOmit() {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                return omit;<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 void reset() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        pos[i] = start[i];<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                int j = 0;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                for (; j &lt;= endrank; j++) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        if (!omit[j])<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                break;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                if (j &gt; endrank) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        once = true;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        return;<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>                if (omit[endrank]) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        pos[endrank] = start[endrank];<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        <a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                if (!omit[i]) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                        pos[i] -= step[i];<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                        break;<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>                } else {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        pos[endrank] -= step[endrank];<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>                index = offset;<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 int[] getShape() {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return 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>        public int[] getStop() {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                return stop;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..c4c03fc
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,763 @@
+<!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 dtype<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>         */<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public Dataset createGreyDataset(final int dtype) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return createGreyDataset(Wr, Wg, Wb, dtype);<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>         * Convert colour dataset to a grey-scale one using given RGB to luma mapping<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param red weight<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param green weight<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @param blue weight<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param dtype<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @return a grey-scale dataset of given type<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public Dataset createGreyDataset(final double red, final double green, final double blue, final int dtype) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                @SuppressWarnings("deprecation")<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                final Dataset grey = DatasetFactory.zeros(shape, dtype);<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                final IndexIterator it = getIterator();<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>                int i = 0;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                while (it.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        grey.setObjectAbs(i++, red*data[it.index] + green*data[it.index + 1] + blue*data[it.index + 2]);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                }<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                return grey;<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>        /**<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * Extract red colour channel<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param dtype<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @return a dataset of given type<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         */<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        public Dataset createRedDataset(final int dtype) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return createColourChannelDataset(0, dtype, "red");<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>         * Extract green colour channel<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param dtype<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @return a dataset of given type<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public Dataset createGreenDataset(final int dtype) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                return createColourChannelDataset(1, dtype, "green");<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>        /**<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * Extract blue colour channel<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @param dtype<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         * @return a dataset of given type<a name="line.608"></a>
+<span class="sourceLineNo">609</span>         */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        public Dataset createBlueDataset(final int dtype) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                return createColourChannelDataset(2, dtype, "blue");<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>        private Dataset createColourChannelDataset(final int channelOffset, final int dtype, final String cName) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                @SuppressWarnings("deprecation")<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                final Dataset channel = DatasetFactory.zeros(shape, dtype);<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                final StringBuilder cname = name == null ? new StringBuilder() : new StringBuilder(name);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                if (cname.length() &gt; 0) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        cname.append('.');<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                cname.append(cName);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                channel.setName(cname.toString());<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>                final IndexIterator it = getIterator();<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int i = 0;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                while (it.hasNext()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        channel.setObjectAbs(i++, data[it.index + channelOffset]);<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>                return channel;<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>         * @return red view<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         */<a name="line.637"></a>
+<span class="sourceLineNo">638</span>        public ShortDataset getRedView() {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return getColourChannelView(0, "red");<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>        /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         * @return green view<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         */<a name="line.644"></a>
+<span class="sourceLineNo">645</span>        public ShortDataset getGreenView() {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                return getColourChannelView(1, "green");<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>        /**<a name="line.649"></a>
+<span class="sourceLineNo">650</span>         * @return blue view<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        public ShortDataset getBlueView() {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return getColourChannelView(2, "blue");<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>        private ShortDataset getColourChannelView(final int channelOffset, final String cName) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                ShortDataset view = getElements(channelOffset);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                view.setName(cName);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return view;<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 Number max(boolean... ignored) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                short max = Short.MIN_VALUE;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                final IndexIterator it = getIterator();<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>                while (it.hasNext()) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                final short value = data[it.index + i];<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                if (value &gt; max)<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        max = value;<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>                return max;<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>        @Override<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        public Number min(boolean... ignored) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                short max = Short.MAX_VALUE;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                final IndexIterator it = getIterator();<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>                while (it.hasNext()) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                final short value = data[it.index + i];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                if (value &lt; max)<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                        max = value;<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>                return max;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Random.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..abaabd4
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..19e5d35
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..a1696a5
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..3d68e03
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,463 @@
+<!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>}<a name="line.391"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..d32730e
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,1335 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                offset = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                stride = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                base = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                odata = data = createArray(size);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                IndexIterator iter = dataset.getIterator();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException(t);<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><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Copy and cast a dataset to this class type<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param dataset<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        ShortDataset(final Dataset dataset) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                copyToView(dataset, this, true, false);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                offset = 0;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                stride = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                base = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        odata = data = createArray(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } catch (Throwable t) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        throw new IllegalArgumentException(t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                IndexIterator iter = dataset.getIterator();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        data[i] = (short) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (!super.equals(obj)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<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>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return true;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                ShortDataset other = (ShortDataset) obj;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//              if (size == 1) // for zero-rank datasets<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator iter = getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator oiter = other.getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<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>                return true;<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 int hashCode() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return super.hashCode();<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 ShortDataset clone() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return new ShortDataset(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * sequences or arrays are padded with zeros.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         *<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param obj<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset with contents given by input<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        static ShortDataset createFromObject(final Object obj) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                ShortDataset result = new ShortDataset();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (obj != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        try {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                result.odata = result.data = createArray(result.size);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        } catch (Throwable t) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>         *<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param stop<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static ShortDataset createRange(final double stop) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return createRange(0, stop, 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>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param start<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param stop<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param step<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static ShortDataset createRange(final double start, final double stop, final double step) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int size = calcSteps(start, stop, step);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                ShortDataset result = new ShortDataset(size);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                for (int i = 0; i &lt; size; i++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        result.data[i] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return result;<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>         * @param shape<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return a dataset filled with ones<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        static ShortDataset ones(final int... shape) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new ShortDataset(shape).fill(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 ShortDataset fill(final Object obj) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                setDirty();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                IndexIterator iter = getIterator();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                while (iter.hasNext()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return data buffer as linear array<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public short[] getData() { // PRIM_TYPE<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return data;<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>        protected int getBufferLength() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (data == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        return 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return data.length;<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 ShortDataset getView(boolean deepCopyMetadata) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                ShortDataset view = new ShortDataset();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                view.setData();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return view;<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>        /**<a name="line.283"></a>
+<span class="sourceLineNo">284</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.284"></a>
+<span class="sourceLineNo">285</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param index<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return value<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public short getAbs(final int index) { // PRIM_TYPE<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return data[index];<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 boolean getElementBooleanAbs(final int index) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return data[index] != 0; // BOOLEAN_FALSE<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 double getElementDoubleAbs(final int index) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return data[index]; // BOOLEAN_ZERO<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>        @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public long getElementLongAbs(final int index) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return data[index]; // BOOLEAN_ZERO // OMIT_CAST_INT<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 Object getObjectAbs(final int index) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return data[index];<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 String getStringAbs(final int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.321"></a>
+<span class="sourceLineNo">322</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.322"></a>
+<span class="sourceLineNo">323</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param index<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *            absolute index<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param val<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            new value<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         */<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                setDirty();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data[index] = val;<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>        @Override<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                setDirty();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>                setAbs(index, (short) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>         * @return item in first position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @since 2.0<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public short get() { // PRIM_TYPE<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @return item in given position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        public short get(final int i) { // PRIM_TYPE<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                return data[get1DIndex(i)];<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>        /**<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @param i<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param j<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>        public short get(final int i, final int j) { // PRIM_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 short get(final int... pos) { // PRIM_TYPE<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return Short.valueOf(get()); // CLASS_TYPE<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 Object getObject(final int i) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return Short.valueOf(get(i)); // CLASS_TYPE<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 Object getObject(final int i, final int j) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return Short.valueOf(get(i, j)); // CLASS_TYPE<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 Object getObject(final int... pos) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return Short.valueOf(get(pos)); // CLASS_TYPE<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 String getString() {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getStringAbs(get1DIndex(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>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public String getString(final int i, final int j) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getStringAbs(get1DIndex(i, j));<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 String getString(final int... pos) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getStringAbs(get1DIndex(pos));<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() {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return get(); // BOOLEAN_ZERO<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 double getDouble(final int i) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                return get(i); // BOOLEAN_ZERO<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 double getDouble(final int i, final int j) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i, j); // BOOLEAN_ZERO<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 double getDouble(final int... pos) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return get(pos); // BOOLEAN_ZERO<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 float getFloat() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public float getFloat(final int i) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        public float getFloat(final int i, final int j) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<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 float getFloat(final int... pos) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<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>        @Override<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        public long getLong() {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 long getLong(final int i) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public long getLong(final int i, final int j) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public long getLong(final int... pos) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public int getInt() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public int getInt(final int i) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public int getInt(final int i, final int j) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 getInt(final int... pos) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int i, final int j) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 short getShort(final int... pos) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        public byte getByte(final int i) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int i, final int j) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<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 byte getByte(final int... pos) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<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>        @Override<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        public boolean getBoolean() {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>        @Override<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public boolean getBoolean(final int i) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return get(i) != 0; // BOOLEAN_FALSE<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 boolean getBoolean(final int i, final int j) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                return get(i, j) != 0; // BOOLEAN_FALSE<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>        @Override<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public boolean getBoolean(final int... pos) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return get(pos) != 0; // BOOLEAN_FALSE<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>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         *<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param value<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @since 2.0<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         */<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public void setItem(final short value) { // PRIM_TYPE<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         *<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * @param value<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param i<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         */<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public void setItem(final short value, final int i) { // PRIM_TYPE<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @param value<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * @param i<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param j<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        public void setItem(final short value, final int i, final int j) { // PRIM_TYPE<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                setAbs(get1DIndex(i, j), value);<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>         * Sets the value at a particular point to the passed value<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         *<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param pos<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public void setItem(final short value, final int... pos) { // PRIM_TYPE<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setAbs(get1DIndex(pos), value);<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 set(final Object obj) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setItem((short) DTypeUtils.toLong(obj)); // FROM_OBJECT<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>        @Override<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        public void set(final Object obj, final int i) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                setItem((short) DTypeUtils.toLong(obj), i); // FROM_OBJECT<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>        @Override<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        public void set(final Object obj, final int i, final int j) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                setItem((short) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<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>        @Override<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public void set(final Object obj, int... pos) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        pos = new int[shape.length];<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>                setItem((short) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<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>        @Override<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public void resize(int... newShape) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                setDirty();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                final IndexIterator iter = getIterator();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final short[] ndata; // PRIM_TYPE<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                try {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        ndata = createArray(nsize);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } catch (Throwable t) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        throw new IllegalArgumentException(t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        ndata[i] = data[iter.index];<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>                odata = data = ndata;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                size = nsize;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                shape = newShape;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                stride = null;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                offset = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                base = null;<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>        @Override<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        public ShortDataset sort(Integer axis) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                setDirty();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (axis == null) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        if (stride == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                Arrays.sort(data);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                ShortDataset ads = clone().sort(null);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                setSlicedView(getView(false), ads);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        axis = checkAxis(axis);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        <a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        ShortDataset ads = new ShortDataset(shape[axis]);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        int[] pos = pi.getPos();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        boolean[] hit = pi.getOmit();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        while (pi.hasNext()) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                Arrays.sort(ads.data);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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>        @Override<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public ShortDataset getUniqueItems() {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                Set&lt;Short&gt; set = new TreeSet&lt;Short&gt;(); // CLASS_TYPE<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                IndexIterator it = getIterator();<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                while (it.hasNext()) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        set.add(data[it.index]);<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>                ShortDataset u = new ShortDataset(set.size()); // CLASS_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                int i = 0;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                short[] udata = u.getData(); // PRIM_TYPE<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                for (Short v : set) { // CLASS_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        udata[i++] = v;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                return u;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>        @Override<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        public ShortDataset getSlice(final SliceIterator siter) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                ShortDataset result = new ShortDataset(siter.getShape());<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        rdata[i] = data[siter.index];<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<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>        @Override<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>                short[] rdata = ((ShortDataset) result).data; // PRIM_TYPE<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public ShortDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                setDirty();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (obj instanceof Dataset) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        final Dataset ds = (Dataset) obj;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (length != ds.getSize()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                throw new IllegalArgumentException(<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                data[biter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                } else {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        while (biter.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                data[biter.index] = dv;<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>                return this;<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>        @Override<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        public ShortDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                setDirty();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                if (obj instanceof Dataset) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        final Dataset ds = (Dataset) obj;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        if (index.getSize() != ds.getSize()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                throw new IllegalArgumentException(<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                                "Number of items in index dataset does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                } else {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        while (iter.hasNext()) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                data[iter.index] = dv;<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>                return this;<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>        @Override<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public ShortDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                setDirty();<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final int[] pos = iter.getPos();<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                if (obj instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        final Dataset ds = (Dataset) obj;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException(<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                setItem((short) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<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>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        while (iter.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                setItem(dv, pos);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        }<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                return this;<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>        @Override<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        ShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                setDirty();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>                while (it.hasNext()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                return this;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>        @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public ShortDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                setDirty();<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>                if (obj instanceof IDataset) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        final IDataset ds = (IDataset) obj;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final int[] oshape = ds.getShape();<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException(String.format(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                final Dataset ads = (Dataset) ds;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        } else {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final int[] pos = oiter.getPos();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                        data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        try {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                short v = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (siter.hasNext())<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        data[siter.index] = v;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        } catch (IllegalArgumentException e) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                setDirty();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                for (int i = 0; siter.hasNext(); i++) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        data[siter.index] = sdata[i];<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><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        private List&lt;int[]&gt; findPositions(final short value) { // PRIM_TYPE<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                IndexIterator iter = getIterator(true);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (data[iter.index] == value) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        posns.add(pos.clone());<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>                }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return posns;<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 int[] maxPos(boolean... ignoreInvalids) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (max == null) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        max = findPositions(md.getMaximum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        md.setMaximumPositions(max);<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>                return max.get(0); // first maximum<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>        @Override<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>                if (min == null) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        min = findPositions(md.getMinimum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public boolean containsNans() {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return false;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public boolean containsInfs() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return false;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public boolean containsInvalidNumbers() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return false;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public ShortDataset iadd(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                setDirty();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                if (bds.getSize() == 1) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        final IndexIterator it = getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (useLong) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                while (it.hasNext()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        data[it.index] += lb;<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>                                final double db = bds.getElementDoubleAbs(0);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                while (it.hasNext()) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        data[it.index] += db;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                }<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        it.setOutputDouble(!useLong);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        if (useLong) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        data[it.aIndex] += it.bLong;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        } else {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        data[it.aIndex] += it.bDouble;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<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 this;<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>        @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        public ShortDataset isubtract(final Object b) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                setDirty();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (bds.getSize() == 1) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        final IndexIterator it = getIterator();<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        if (useLong) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                while (it.hasNext()) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        data[it.index] -= lb;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        } else {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                while (it.hasNext()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        data[it.index] -= db;<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>                } else {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (useLong) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                it.setOutputDouble(false);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        } else {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                it.setOutputDouble(true);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                while (it.hasNext()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        data[it.aIndex] -= it.bDouble;<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>                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                return this;<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>        @Override<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        public ShortDataset imultiply(final Object b) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                setDirty();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (bds.getSize() == 1) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        final IndexIterator it = getIterator();<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        if (useLong) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                while (it.hasNext()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        data[it.index] *= lb;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        } else {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                while (it.hasNext()) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        data[it.index] *= db;<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>                } else {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        it.setOutputDouble(!useLong);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        if (useLong) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                while (it.hasNext()) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        } else {<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.bDouble;<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>                }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                return this;<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>        @Override<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        public ShortDataset idivide(final Object b) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                setDirty();<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                if (bds.getSize() == 1) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (useLong) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                if (lb == 0) { // INT_USE<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        fill(0); // INT_USE<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                } else { // INT_USE<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                final IndexIterator it = getIterator();<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                while (it.hasNext()) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        data[it.index] /= lb;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        } else {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                final double db = bds.getElementDoubleAbs(0);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                if (db == 0) { // INT_USE<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        fill(0); // INT_USE<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } else { // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                final IndexIterator it = getIterator();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                        data[it.index] /= db;<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        it.setOutputDouble(!useLong);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (useLong) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                        } else { // INT_USE<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        } // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        } else {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        } else { // INT_USE<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        } // INT_USE<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>                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                return this;<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>        @Override<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        public ShortDataset ifloor() {<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 iremainder(final Object b) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                setDirty();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                if (bds.getSize() == 1) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        if (useLong) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                if (lb == 0) { // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        fill(0); // INT_USE<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                } else { // INT_USE<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                final IndexIterator it = getIterator();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                while (it.hasNext()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        data[it.index] %= lb;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                } // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                        } else {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final long lb = bds.getElementLongAbs(0);<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                if (lb == 0) { // INT_USE<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        fill(0); // INT_USE<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                } else { // INT_USE<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                final IndexIterator it = getIterator();<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                while (it.hasNext()) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        data[it.index] %= lb;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                } // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                } else {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        it.setOutputDouble(!useLong);<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        if (useLong) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                while (it.hasNext()) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                try {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                } catch (ArithmeticException e) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        data[it.aIndex] = 0;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        } else {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                while (it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                try {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                data[it.aIndex] %= it.bDouble; // INT_EXCEPTION<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                } catch (ArithmeticException e) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        data[it.aIndex] = 0;<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>                        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                return this;<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>        @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        public ShortDataset ipower(final Object b) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                setDirty();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                if (bds.getSize() == 1) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                        final double vr = bds.getElementDoubleAbs(0);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        final IndexIterator it = getIterator();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (bds.isComplex()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                final double vi = bds.getElementDoubleAbs(1);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                if (vi == 0) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                                        while (it.hasNext()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                } else { // INT_USE<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                } // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                } else {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        while (it.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                } else { // INT_USE<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                } // INT_USE<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>                        } else {// NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                while (it.hasNext()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                                data[it.index] = 0; // INT_USE<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        } else { // INT_USE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        } // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                        }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                } else {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        it.setOutputDouble(true);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        if (bds.isComplex()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                while (it.hasNext()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        } else { // INT_USE<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        } // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        } else {// NAN_OMIT<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                while (it.hasNext()) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        } else { // INT_USE<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        } // INT_USE<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>                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                return this;<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>        @Override<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                it.setOutputDouble(true);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                double sum = 0;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                double comp = 0;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        if (w == null) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                while (it.hasNext()) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        final double err = diff * diff - comp;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        final double temp = sum + err;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        comp = (temp - sum) - err;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        sum = temp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        } else {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                IndexIterator itw = w.getIterator();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        final double temp = sum + err;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        comp = (temp - sum) - err;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        sum = temp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                }<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>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..572c452
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
@@ -0,0 +1,352 @@
+<!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>                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 &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                aShape = fullShapes.remove(0);<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>                int rank = maxShape.length;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                endrank = rank - 1;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                aDataset = a.reshape(aShape);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                outputA = o == a;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                if (outputA) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        oStride = aStride;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        oDelta = null;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        oStep = 0;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        oDataset = aDataset;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                } else if (o != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        oDelta = new int[rank];<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        oStep = o.getElementsPerItem();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        oDataset = o;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                } else if (createIfNull) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        int is = aDataset.getElementsPerItem();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        int dt = aDataset.getDType();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (aDataset.isComplex() &amp;&amp; !allowComplex) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                is = 1;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        } else if (!aDataset.hasFloatingPointElements() &amp;&amp; !allowInteger) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        oDataset = DatasetFactory.zeros(is, maxShape, dt);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        oDelta = new int[rank];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        oStep = oDataset.getElementsPerItem();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                } else {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        oDelta = null;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        oStep = 0;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        oDataset = o;<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>                pos = new int[rank];<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                aDelta = new int[rank];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                aStep = aDataset.getElementsPerItem();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        if (oDelta != null) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                oDelta[j] = oStride[j] * maxShape[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>                if (endrank &lt; 0) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        aMax = aStep;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } else {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        aMax = Integer.MIN_VALUE; // use max delta<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                if (aDelta[j] &gt; aMax) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        aMax = aDelta[j];<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>                }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                aStart = aDataset.getOffset();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                aMax += aStart;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                reset();<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>        /**<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         * @return true if output from iterator is double<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public boolean isOutputDouble() {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                return asDouble;<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>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * Set to output doubles<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param asDouble<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public void setOutputDouble(boolean asDouble) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (this.asDouble != asDouble) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        this.asDouble = asDouble;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        storeCurrentValues();<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>        private static void checkItemSize(Dataset a, Dataset o) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                final int isa = a.getElementsPerItem();<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                if (o != null) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        final int iso = o.getElementsPerItem();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        if (isa != 1 &amp;&amp; iso != isa) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<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>        @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public int[] getShape() {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                return maxShape;<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 boolean hasNext() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                int j = endrank;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                int oldA = aIndex;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                for (; j &gt;= 0; j--) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        pos[j]++;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        aIndex += aStride[j];<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        if (oDelta != null)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                oIndex += oStride[j];<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                pos[j] = 0;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                if (oDelta != null)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                        oIndex -= oDelta[j];<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        } else {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                break;<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>                if (j == -1) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        if (endrank &gt;= 0) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                aIndex = aMax;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                return false;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        aIndex += aStep;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        if (oDelta != null)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                oIndex += oStep;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                if (outputA) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        oIndex = aIndex;<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>                if (aIndex == aMax)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        return false;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>                if (oldA != aIndex) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        if (asDouble) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        } else {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                aLong = aDataset.getElementLongAbs(aIndex);<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><a name="line.233"></a>
+<span class="sourceLineNo">234</span>                return true;<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>         * @return output dataset (can be null)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public Dataset getOutput() {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                return oDataset;<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 int[] getPos() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return pos;<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 void reset() {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        pos[i] = 0;<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>                if (endrank &gt;= 0) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        pos[endrank] = -1;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        aIndex = aStart - aStride[endrank];<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        aIndex = -aStep;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        oIndex = -oStep;<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>                // for zero-ranked datasets<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                if (aIndex == 0) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        storeCurrentValues();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        if (aMax == aIndex)<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                                aMax++;<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>        private void storeCurrentValues() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (aIndex &gt;= 0) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        if (asDouble) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        } else {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                aLong = aDataset.getElementLongAbs(aIndex);<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>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>}<a name="line.280"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..b1501ad
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/Slice.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..61b87ee
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,623 @@
+<!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> * Class to represent a slice through a single dimension of a multi-dimensional dataset. A slice<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * comprises a starting position, a stopping position (not included) and a stepping size.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class Slice implements Cloneable, Serializable {<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>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = 3714928852236201310L;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private Integer start;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private Integer stop;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        private int step;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private int length; // max length of dimension<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public Slice() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                this(null, null, 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>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Default to starting at 0 with steps of 1<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param stop if null, then default to whatever shape is when converted<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public Slice(final Integer stop) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                this(null, stop, 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>        /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * Default to steps of 1<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param start if null, then default to 0<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param stop if null, then default to whatever shape is when converted<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public Slice(final Integer start, final Integer stop) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                this(start, stop, 1);<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>         * @param start if null, then default to bound<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @param stop if null, then default to bound<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param step if null, then default to 1<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public Slice(final Integer start, final Integer stop, final Integer step) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                this.start = start;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                this.stop = stop;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                this.step = step == null ? 1 : step;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                length = -1;<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>         * Copy another slice<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param other<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        private Slice(final Slice other) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                start  = other.start;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                stop   = other.stop;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                step   = other.step;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                length = other.length;<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 Slice clone() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return new Slice(this);<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>         * Set maximum value of slice<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param length<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @return this slice<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public Slice setLength(int length) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                if (stop != null &amp;&amp; step &gt; 0 &amp;&amp; length &lt; stop) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        throw new IllegalArgumentException("Length must be greater than or equal to stop");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                if (start != null &amp;&amp; step &lt; 0 &amp;&amp; length &lt; start) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        throw new IllegalArgumentException("Length must be greater than or equal to start");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                this.length = length;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                return this;<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 true if slice represents complete dimension<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public boolean isSliceComplete() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                if (start == null &amp;&amp; stop == null &amp;&amp; (step == 1 || step == -1))<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        return true;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                if (length &gt; 0) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        return getNumSteps() == length;<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>                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>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @return maximum value of slice<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public int getLength() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                return length;<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>         * @return starting position of slice<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public Integer getStart() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                return start;<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>         * @return stopping position of slice<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public Integer getStop() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                return stop;<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>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @return step size of slice<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        public int getStep() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                return step;<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>         * Set starting position of slice<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @param start (can be null)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public void setStart(Integer start) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (start != null &amp;&amp; length &gt; 0) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        if (step &gt; 0) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                int end = stop == null ? length : stop;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                if (start &gt;= end) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                        throw new IllegalArgumentException("Non-null start must be less than end");<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>                                int end = stop == null ? -1 : stop;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                if (start &lt; end) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        throw new IllegalArgumentException("Non-null start must be greater than end for negative step");<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>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                this.start = start;<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>         * Set stopping position of slice<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @param stop (can be null)<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        public void setStop(Integer stop) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                if (stop != null &amp;&amp; length &gt; 0) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        if (step &gt; 0) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                int beg = start == null ? 0 : start;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                if (stop &lt; beg) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                        throw new IllegalArgumentException("Non-null stop must be greater than or equal to beginning");<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        } else {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                int beg = start == null ? length - 1 : start;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                if (stop &gt;= beg) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                        throw new IllegalArgumentException("Non-null stop must be less than beginning for negative step");<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 (stop &gt; length)<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                stop = length;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                this.stop = stop;<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>         * Set start and end from implied number of steps. I.e. shift start to position given by<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * parameter whilst keeping size of slice fixed<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param beg<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @return true if end reached<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public boolean setPosition(int beg) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                boolean end = false;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                int len = getNumSteps();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                int max = getNumSteps(beg, length, step);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                if (len &gt; max) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        len = max;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        end = true;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                start = beg;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                stop = start + (len-1) * step + 1;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                return end;<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>         * Get position of n-th step in slice<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param n<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @return position<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         */<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        public int getPosition(int n) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (n &lt; 0)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        throw new IllegalArgumentException("Given n-th step should be non-negative");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                if (n &gt;= getNumSteps())<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        throw new IllegalArgumentException("N-th step exceeds extent of slice");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                int beg;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                if (start == null) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        if (step &lt; 0) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                if (length &lt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                        if (stop == null) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                                throw new IllegalStateException("Length or stop should be set");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                        }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                        beg = stop - 1;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                } else {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                        beg = length - 1;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        } else {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                beg = 0;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        beg = start;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                return beg + step*n;<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>        /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * Set step size of slice<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * @param step<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        public void setStep(int step) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                if (step == 0) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        throw new IllegalArgumentException("Step must not be zero");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                this.step = step;<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>        /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         * Append string representation of slice<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param s<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * @param len<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         * @param beg<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * @param end<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * @param del<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         */<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        public static void appendSliceToString(final StringBuilder s, final int len, final int beg, final int end, final int del) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                int o = s.length();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                if (del &gt; 0) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        if (beg != 0)<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                s.append(beg);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                } else {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        if (beg != len-1)<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                s.append(beg);<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>                int n = getNumSteps(beg, end, del);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                if (n == 1) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        if (s.length() == o) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                s.append(beg);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        return;<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>                s.append(':');<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (del &gt; 0) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        if (end != len)<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                s.append(end);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                } else {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                        if (end != -1)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                s.append(end);<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>                if (del != 1) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        s.append(':');<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        s.append(del);<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>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public String toString() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                StringBuilder s = new StringBuilder();<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                appendSliceToString(s, length, start != null ? start : (step &gt; 0 ? 0 : length - 1), stop != null ? stop : (step &gt; 0 ? length : -1), step);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                return s.toString();<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 number of steps in slice<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         */<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        public int getNumSteps() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                if (length &lt; 0) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        if (stop == null)<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                throw new IllegalStateException("Slice is underspecified - stop is null and length is negative");<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        int beg = start == null ? (step &gt; 0 ? 0: stop-1) : start;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        if (step &gt; 0 &amp;&amp; stop &lt;= beg)<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                return 0;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        if (step &lt; 0 &amp;&amp; stop &gt; beg)<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                return 0;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        return getNumSteps(beg, stop, step);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                int beg = start == null ? (step &gt; 0 ? 0: length-1) : start;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                int end = stop == null ? (step &gt; 0 ? length : -1) : stop;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return getNumSteps(beg, end, step);<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>         * @param beg<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @param end (exclusive)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @return number of steps between limits<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        public int getNumSteps(int beg, int end) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                return getNumSteps(beg, end, step);<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>        private static int getNumSteps(int beg, int end, int step) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                int del = step &gt; 0 ? 1 : -1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                return Math.max(0, (end - beg - del) / step + 1);<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>         * @return last value in slice (&lt; stop if step &gt; 0, &gt; stop if step &lt; 0)<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public int getEnd() {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                int n = getNumSteps() - 1;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                if (n &lt; 0)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                        throw new IllegalStateException("End is not defined");<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return getPosition(n);<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>         * Flip slice direction so slice begins at previous end point, steps<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * in the opposite direction, and finishes at the previous start point  .<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * &lt;p&gt;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * Note the stop value may not be preserved across two flips<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public Slice flip() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                if (length &lt; 0) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        Integer tmp = start == null ? null : start - step;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        start = stop == null ? null : getEnd();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        stop = tmp;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                } else {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        Integer tstart = start;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        start = stop == null ? null : getEnd();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        stop = tstart == null ? null : tstart - step;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                step = -step;<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                return this;<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>         * Populate given start, stop, step arrays from given slice array <a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param shape<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @param start<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param stop<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @param step<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @param slice<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         */<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public static void convertFromSlice(final Slice[] slice, final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                final int rank = shape.length;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                final int length = slice == null ? 0 : slice.length;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        <a name="line.369"></a>
+<span class="sourceLineNo">370</span>                int i = 0;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                for (; i &lt; length; i++) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        if (length &gt; rank)<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                                break;<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        Slice s = slice[i];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        if (s == null) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                                start[i] = 0;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                                stop[i] = shape[i];<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                step[i] = 1;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                                continue;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        int n;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        if (s.start == null) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                start[i] = s.step &gt; 0 ? 0 : shape[i] - 1;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        } else {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                n = s.start;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                if (n &lt; 0)<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                        n += shape[i];<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                                if (n &lt; 0 || n &gt;= shape[i]) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                        throw new IllegalArgumentException(String.format("Start is out of bounds: %d is not in [%d,%d)",<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                                                        n, s.start, shape[i]));<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                start[i] = n;<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>                        if (s.stop == null) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                stop[i] = s.step &gt; 0 ? shape[i] : -1;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        } else {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                                n = s.stop;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                if (n &lt; 0)<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                        n += shape[i];<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                                if (n &lt; 0 || n &gt; shape[i]) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                                        throw new IllegalArgumentException(String.format("Stop is out of bounds: %d is not in [%d,%d)",<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                                                        n, s.stop, shape[i]));<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                                stop[i] = n;<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>                        n = s.step;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        if (n == 0) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                throw new IllegalArgumentException("Step cannot be zero");<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        if (n &gt; 0) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                if (start[i] &gt; stop[i])<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                        throw new IllegalArgumentException("Start must be less than stop for positive steps");<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        } else {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                if (start[i] &lt; stop[i])<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                        throw new IllegalArgumentException("Start must be greater than stop for negative steps");                               <a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        step[i] = n;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                for (; i &lt; rank; i++) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        start[i] = 0;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        stop[i] = shape[i];<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        step[i] = 1;<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>        /**<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * Convert from a set of integer arrays to a slice array<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * @param start<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param stop<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         * @param step<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return a slice array<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public static Slice[] convertToSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                int orank = start.length;<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>                if (stop.length != orank || step.length != orank) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        throw new IllegalArgumentException("All arrays must be same length");<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>                Slice[] slice = new Slice[orank];<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        slice[j] = new Slice(start[j], stop[j], step[j]);<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>                return slice;<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>        /**<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * Convert a string to a slice array<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         * <a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * @param sliceString<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return a slice array<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         */<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public static Slice[] convertFromString(String sliceString) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>                String clean = sliceString.replace("[", "");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                clean = clean.replace("]", "");<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>                String[] sub = clean.split(",");<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>                Slice[] slices = new Slice[sub.length];<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span>                for (int i = 0; i &lt; sub.length; i++) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        String s = sub[i];<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        Slice slice = new Slice(); <a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        slices[i] = slice;<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        int idx0 = s.indexOf(":");<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        int n = 0;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        if (idx0 == -1) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                n = Integer.parseInt(s);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                slice.setStart(n);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                                slice.setStop(n + 1);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                continue;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        } else if (idx0 != 0) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                n = Integer.parseInt(s.substring(0, idx0));<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        }<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        slice.setStart(n);<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        idx0++;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        int idx1 = s.indexOf(":", idx0);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        if (idx1 == -1) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                String t = s.substring(idx0).trim(); <a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                if (t.length() == 0)<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                        continue;<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>                                slice.setStop(Integer.parseInt(t));<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                continue;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        } else if (idx1 != idx0) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                slice.setStop(Integer.parseInt(s.substring(idx0, idx1)));<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>                        String t = s.substring(idx1 + 1).trim(); <a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        if (t.length() &gt; 0)<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                slice.setStep(Integer.parseInt(t));<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>                return slices;<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>         * Create a string representing the slice taken from given shape<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * @param shape<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         * @param start<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * @param stop<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         * @param step<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * @return string representation<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         */<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        public static String createString(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                final int rank = shape.length;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                if (rank == 0) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        return "";<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                StringBuilder s = new StringBuilder();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        int l = shape[i];<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        int d = step == null ? 1 : step[i];<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        int b = start == null ? (d &gt; 0 ? 0 : l - 1) : start[i];<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        int e = stop == null ? (d &gt; 0 ? l : -1) : stop[i];<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        <a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        appendSliceToString(s, l, b, e, d);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        s.append(',');<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>                return s.substring(0, s.length()-1);<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>        /**<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * @param slices<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @return string specifying slices<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         */<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        public static String createString(Slice... slices) {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                if (slices == null || slices.length == 0) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        return "";<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>                StringBuilder t = new StringBuilder();<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                for (Slice s : slices) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        t.append(s != null ? s.toString() : ':');<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        t.append(',');<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return t.substring(0, t.length() - 1);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..8bdf0dd
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceIterator.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><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> * Class 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>public class SliceIterator extends IndexIterator {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        int[] shape;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        int isize;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        int endrank; // last shape index<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        int[] gap; // gaps in dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        int imax; // maximum index in array<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        int[] start;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        int[] stop;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        int[] step;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        int[] sshape; // slice shape<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        int[] pos; // position in dataset<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        int istep; // step in last index<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        SliceIterator() {<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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * <a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param shape or dataShape<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param length of entire data array<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                this(shape, length, null, null, sshape, 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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * <a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param shape or dataShape<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param length of entire data array<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param start (if null then equivalent to the origin)<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                this(shape, length, start, null, sshape, 1);<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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * <a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param shape or dataShape<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param length of entire data array<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param isize number of elements in an item<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape, final int isize) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                this(shape, length, null, null, sshape, isize);<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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * <a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @param shape or dataShape<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param length of entire data array<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param start (if null then equivalent to the origin)<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param isize number of elements in an item<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape, final int isize) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                this(shape, length, start, null, sshape, isize);<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 over the elements of a sliced dataset<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * <a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param shape or dataShape<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param length of entire data array<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param start (if null then equivalent to the origin)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param step (cannot contain zeros, if null then equivalent to ones)<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                this(shape, length, start, step, sshape, 1);<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>        /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * <a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param shape or dataShape<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param length of entire data array<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param slice<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 SliceND slice) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), 1);<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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * <a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param shape or dataShape<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param length of entire data array<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param isize number of elements in an item<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param slice<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public SliceIterator(final int[] shape, final int length, final int isize, final SliceND slice) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), isize);<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>         * Constructor for an iterator over the elements of a sliced dataset<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * <a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param shape or dataShape<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @param length of entire data array<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @param start (if null then equivalent to the origin)<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param step (cannot contain zeros, if null then equivalent to ones)<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param sshape shape of new dataset, i.e. slice<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @param isize number of elements in an item<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape, final int isize) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                this.isize = isize;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                int rank = shape.length;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                endrank = rank - 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                this.shape = shape;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                this.start = new int[rank];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                this.sshape = sshape;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                if (step == null) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        this.step = new int[rank];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        Arrays.fill(this.step, 1);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                } else {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        this.step = step;<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 (rank == 0) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        istep = isize;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        imax = length*isize;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        stop = new int[0];<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        pos = new int[0];<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        gap = null;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        istep = this.step[endrank] * isize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        imax = length * isize;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        stop = new int[rank];<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        gap = new int[endrank + 1];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        pos = new int[rank];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        calcGap();<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>                setStart(start);<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>        void calcGap() {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                int chunk = isize;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                for (int i = endrank; i &gt;= 0; i--) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        stop[i] = start[i] + sshape[i] * step[i];<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        <a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        if (step[i] &lt; 0)<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                stop[i]++; // adjust for -ve steps so later code has more succinct test<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        <a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (i &gt; 0) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                gap[i] = (shape[i] * step[i - 1] - sshape[i] * step[i]) * chunk;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                chunk *= shape[i];<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><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * Set start (prefix with zeros if necessary)<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * @param newStart if null, then treat as origin<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public void setStart(int... newStart) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                final int rank = shape.length;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                if (rank == 0) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        index = -istep;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        return;<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>                if (newStart == null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                start[i] = 0;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                } else if (newStart.length &gt; rank) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        throw new IllegalArgumentException("Length of start array greater than rank");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                } else {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        int extra = rank - newStart.length;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                start[i] = 0;<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; newStart.length; i++) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                start[i+extra] = newStart[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><a name="line.204"></a>
+<span class="sourceLineNo">205</span>                reset();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                calcGap();<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 void reset() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                if (shape.length == 0) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        index = -istep;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                } else {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        // work out index of first position<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        for (int i = 0; i &lt; shape.length; i++)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                pos[i] = start[i];<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        pos[endrank] -= step[endrank];<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        <a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        index = pos[0];<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        for (int j = 1; j &lt;= endrank; j++)<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                index = index * shape[j] + pos[j];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        index *= isize;<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>        @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public boolean hasNext() {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                // now move on one position in slice<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                int j = endrank;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                for (; j &gt;= 0; j--) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        pos[j] += step[j];<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        if ((pos[j] &gt;= stop[j]) == (step[j] &gt; 0)) { // stop index has been adjusted in code for -ve steps<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                pos[j] = start[j];<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                index += gap[j];<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        } else {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                break;<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 (j == -1 &amp;&amp; endrank &gt;= 0) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        index = imax;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        return false;<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>                index += istep;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return index &lt; imax;<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>        public int[] getStart() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return start;<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 int[] getPos() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return pos;<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>        public int[] getStep() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return step;<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 int[] getShape() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                return sshape;<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.0.1/src-html/org/eclipse/january/dataset/SliceND.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..ad59748
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,551 @@
+<!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> * Class to represent a slice through all dimensions of a multi-dimensional dataset. A slice<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * comprises a starting position array, a stopping position array (not included) and a stepping size array.<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 ND slice for whole of 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>        public SliceND(final int[] shape) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                final int rank = shape.length;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                lstart = new int[rank];<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                lstop  = shape.clone();<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                lstep  = new int[rank];<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                Arrays.fill(lstep, 1);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                lshape = shape.clone();<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                oshape = shape.clone();<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                mshape = oshape;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                expanded = false;<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>         * Construct ND slice from an array of 1D slices<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param shape<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param slice<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public SliceND(final int[] shape, Slice... slice) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(shape, null, slice);<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>         * Construct ND slice from an array of 1D slices<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param shape<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param maxShape can be null<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param slice<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public SliceND(final int[] shape, final int[] maxShape, Slice... slice) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                this(shape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                if (maxShape != null) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        initMaxShape(maxShape);<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>                if (slice != null) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        final int length = slice.length;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        final int rank = shape.length;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        if (length &gt; rank) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                throw new IllegalArgumentException("More slices have been specified than rank of shape");<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                Slice s = slice[i];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                if (s != null) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        setSlice(i, s);<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>        private void initMaxShape(int[] maxShape) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                final int rank = oshape.length;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                if (maxShape.length != rank) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        throw new IllegalArgumentException("Maximum shape must have same rank as shape");<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                mshape = maxShape.clone();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        int m = mshape[i];<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; m &lt; oshape[i]) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                throw new IllegalArgumentException("Maximum shape must be greater than or equal to 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><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * Construct ND slice parameters<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * <a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param shape<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param start<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         *            can be null<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @param stop<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         *            can be null<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param step<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         *            can be null<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        public SliceND(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                this(shape, null, start, stop, step);<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>         * Construct ND slice parameters<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * <a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param shape<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param maxShape can be null<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param start<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         *            can be null<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @param stop<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         *            can be null<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param step<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         *            can be null<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public SliceND(final int[] shape, final int[] maxShape, final int[] start, final int[] stop, final int[] step) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                // number of steps, or new shape, taken in each dimension is<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                // shape = (stop - start + step - 1) / step if step &gt; 0<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                // (stop - start + step + 1) / step if step &lt; 0<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                //<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                // thus the final index in each dimension is<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                // start + (shape-1)*step<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                int rank = shape.length;<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (start == null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        lstart = new int[rank];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                } else {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        lstart = start.clone();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                if (stop == null) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        lstop = new int[rank];<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                } else {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        lstop = stop.clone();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (step == null) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        lstep = new int[rank];<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        Arrays.fill(lstep, 1);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                } else {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        lstep = step.clone();<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>                if (lstart.length != rank || lstop.length != rank || lstep.length != rank) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        throw new IllegalArgumentException("No of indexes does not match data dimensions: you passed it start="<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        + lstart.length + ", stop=" + lstop.length + ", step=" + lstep.length + ", and it needs " + rank);<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>                lshape = new int[rank];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                oshape = shape.clone();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (maxShape == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        mshape = oshape;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        initMaxShape(maxShape);<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>                for (int i = 0; i &lt; rank; i++) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        internalSetSlice(i, start == null ? null : lstart[i], stop == null ? null : lstop[i], lstep[i]);<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>        /**<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         * Set slice for given dimension<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param i dimension<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @param start can be null to imply start of dimension<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @param stop can be null to imply end of dimension<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         * @param step<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public void setSlice(int i, Integer start, Integer stop, int step) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                internalSetSlice(i, start, stop, step);<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>         * Set slice for given dimension<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param i dimension<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @param start<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @param stop<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @param step<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public void setSlice(int i, int start, int stop, int step) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                internalSetSlice(i, start, stop, 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>        /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * Set slice for given dimension<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param i dimension<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param slice<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @since 2.0<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public void setSlice(int i, Slice slice) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                internalSetSlice(i, slice.getStart(), slice.getStop(), slice.getStep());<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>         * Set slice for given dimension<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param i dimension<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param start<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param stop<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @param step<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        private void internalSetSlice(int i, Integer start, Integer stop, int step) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                if (step == 0) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        throw new IllegalArgumentException("Step size must not be zero");<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                final int s = oshape[i];<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                final int m = mshape[i];<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>                if (start == null) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        start = step &gt; 0 ? 0 : s - 1;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                } else if (start &lt; 0) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        start += s;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                if (step &gt; 0) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        if (start &lt; 0) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                start = 0;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        } else if (start &gt; s) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                if (m == s) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                        start = s;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; start &gt; m) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                        start = m;<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>                        if (stop == null) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                if (start &gt;= s &amp;&amp; m == ILazyWriteableDataset.UNLIMITED) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                        throw new IllegalArgumentException("To extend past current dimension in unlimited case, a stop value must be specified");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                stop = s;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        } else if (stop &lt; 0) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                stop += s;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        if (stop &lt; 0) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                stop = 0;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        } else if (stop &gt; s) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                if (m == s) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                        stop = s;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        stop = m;<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>                        if (start &gt;= stop) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                if (start &lt; s || m == s) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                        lstop[i] = start;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                } else { // override end<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                        stop = start + step;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                                stop = m;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                        lstop[i] = stop;<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>                                lstop[i] = stop;<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>                        if (lstop[i] &gt; s) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                oshape[i] = lstop[i];<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                expanded = true;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                } else {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        if (start &lt; 0) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                start = -1;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        } else if (start &gt;= s) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                start = s - 1;<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>                        if (stop == null) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                stop = -1;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        } else if (stop &lt; 0) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                stop += s;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        if (stop &lt; -1) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                stop = -1;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        } else if (stop &gt;= s) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                stop = s - 1;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        if (stop &gt;= start) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                lstop[i] = start;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                        } else {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                lstop[i] = stop;<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>                stop = lstop[i];<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                if (start == stop) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        lshape[i] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                } else if (step &gt; 0) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        lshape[i] = Math.max(0, (stop - start - 1) / step + 1);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                } else {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        lshape[i] = Math.max(0, (stop - start + 1) / step + 1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                lstart[i] = start;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                lstep[i] = step;<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>         * @return shape of source dataset (this can change for dynamic datasets)<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         */<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        public int[] getSourceShape() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                return oshape;<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>         * @return maximum shape<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         */<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        public int[] getMaxShape() {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return mshape;<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>         * @return true if slice makes shape larger<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public boolean isExpanded() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                return expanded;<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>        /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return resulting shape (this can change if the start, stop, step arrays are changed)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        public int[] getShape() {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                return lshape;<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>        /**<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return start values<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public int[] getStart() {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return lstart;<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>         * Note stop values are clamped to -1 for &lt;b&gt;negative&lt;/b&gt; steps<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return stop values<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public int[] getStop() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                return lstop;<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>        /**<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @return step values<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         */<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        public int[] getStep() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                return lstep;<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>
+<span class="sourceLineNo">355</span>         * @return true if all of original shape is covered by this slice with positive steps<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public boolean isAll() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                if (expanded) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        return false;<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>                boolean allData = Arrays.equals(oshape, getShape());<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                if (allData) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        for (int i = 0; i &lt; lshape.length; i++) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                if (lstep[i] &lt; 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                        allData = false;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                        break;<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 allData;<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>         * Flip slice direction in given dimension so slice begins at previous end point,<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * steps in the opposite direction, and finishes at the previous start point  <a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * @param i dimension to flip<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         */<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        public SliceND flip(int i) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                if (i &lt; 0 || i &gt;= lshape.length) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        throw new IllegalArgumentException("Given dimension is less than zero or greater than last dimension");<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>                int beg = lstart[i];<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                int end = lstop[i];<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                int step = lstep[i];<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                int del = lstep[i] &gt; 0 ? 1 : -1;<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>                int num = (end - beg - del) / step + 1; // number of steps<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                lstart[i] = beg + (num - 1) * step;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                lstop[i] = Math.max(beg - step, -1);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                lstep[i] = -step;<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                return this;<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>        /**<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * Flip slice direction in all dimensions so slice begins at previous end point,<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * steps in the opposite direction, and finishes at the previous start point  <a name="line.399"></a>
+<span class="sourceLineNo">400</span>         */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public SliceND flip() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                int orank = lshape.length;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                for (int i = 0; i &lt; orank; i++) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        flip(i);<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>                return this;<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>        /**<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         * Convert to a slice array<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * @return a slice array<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         */<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        public Slice[] convertToSlice() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                int orank = lshape.length;<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>                Slice[] slice = new Slice[orank];<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        slice[j] = new Slice(lstart[j], lstop[j], lstep[j]);<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 slice;<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 SliceND clone() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                SliceND c = new SliceND(oshape);<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>                        c.lstart[i] = lstart[i];<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        c.lstop[i] = lstop[i];<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        c.lstep[i] = lstep[i];<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        c.lshape[i] = lshape[i];<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                c.expanded = expanded;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return c;<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 String toString() {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                final int rank = lshape.length;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                if (rank == 0) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return "";<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                StringBuilder s = new StringBuilder();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                        Slice.appendSliceToString(s, oshape[i], lstart[i], lstop[i], lstep[i]);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        s.append(',');<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>                return s.substring(0, s.length()-1);<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>         * Creating slice from dataset<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @param data<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * @param start<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         * @param stop<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         * @return slice<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         */<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                return createSlice(data, start, stop, null);<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>        /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * Creating slice from dataset<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         * @param data<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * @param start<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         * @param stop<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         * @param step<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @return slice<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         */<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop, int[] step) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                if (data instanceof IDynamicDataset) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        return new SliceND(data.getShape(), ((IDynamicDataset) data).getMaxShape(), start, stop, step);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return new SliceND(data.getShape(), start, stop, step);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..2478eb1
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html
@@ -0,0 +1,347 @@
+<!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>                                if (a &lt; 0) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                        a += rank;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                        sRank--;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                        omit[a] = true;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        shape[a] = 1;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                } else if (a &gt; endrank) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<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>                cSlice = cSlice.clone();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                pos = cSlice.getStart();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                end = cSlice.getStop();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                if (sRank == rank) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        sStart = pos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        sStop = null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        oSlice = null;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        sSlice = cSlice;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                } else {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        int[] dShape = dSlice.getShape();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        int[] lShape = new int[sRank];<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        int[] oShape = new int[rank - sRank];<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        for (int i = 0, j = 0, k = 0; i &lt; rank; i++) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                if (omit[i]) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        oShape[j++] = sShape[i];<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                } else {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                        lShape[k++] = sShape[i];<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                        dShape[i] = 1;<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>                        sSlice = new SliceND(lShape);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        sStart = sSlice.getStart();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        sStop = sSlice.getStop();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>//                      lShape = sSlice.getShape();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>//                      for (int k = 0; k &lt; sRank; k++) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>//                              lShape[k] = 1;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>//                      }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        oSlice = new SliceND(oShape);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        for (int i = 0, j = 0; i &lt; rank; i++) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                if (omit[i]) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                        oSlice.setSlice(j++, start[i], stop[i], step[i]);<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>                <a name="line.123"></a>
+<span class="sourceLineNo">124</span>                reset();<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 boolean hasNext() {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                // now move on one position<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                if (once) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        once = false;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        return true;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int k = sRank - 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        if (omit[j]) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                continue;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        pos[j] += step[j];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        end[j] = pos[j] + step[j];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        dStart[j]++;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        dStop[j]++;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                pos[j] = start[j];<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                end[j] = pos[j] + step[j];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                dStart[j] = 0;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                dStop[j] = 1;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                if (sStop != null) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                        sStart[k] = pos[j];<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                                        sStop[k] = end[j];<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                        k--;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                if (sStop != null) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                        sStart[k] = pos[j];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                        sStop[k] = end[j];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                        k--;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                return true;<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>                return false;<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 int[] getPos() {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                return pos;<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>         * Get omitted part of source slice which never changes<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @return slice (can be null)<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        public SliceND getOmittedSlice() {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return oSlice;<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>         * Get output or destination slice<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * @return slice<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public SliceND getOutputSlice() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return dSlice;<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>         * Get current slice<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @return slice<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public SliceND getCurrentSlice() {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                return cSlice;<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>         * Shortened position where axes are omitted<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @return used position<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public int[] getUsedPos() {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                return sStart;<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>         * Shortened slice where axes are omitted<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @return used slice<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        public SliceND getUsedSlice() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                return sSlice;<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>         * @return omit array - array where true means miss out<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        public boolean[] getOmit() {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return omit;<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 void reset() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        int b = start[i];<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        int d = step[i];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        if (!omit[i]) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                cSlice.setSlice(i, b, b + d, d);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                dStart[i] = 0;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                dStop[i] = 1;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                if (sStop != null) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                        sSlice.setSlice(k++, b, b + d, d);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        } else {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                cSlice.setSlice(i, b, end[i], d);<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><a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int j = 0;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                for (; j &lt;= endrank; j++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        if (!omit[j])<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                break;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                if (j &gt; endrank) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        once = true;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        return;<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 (omit[endrank]) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        pos[endrank] = start[endrank];<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                if (!omit[i]) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        end[i] = pos[i];<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                        pos[i] -= step[i];<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                        dStart[i]--;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                        dStop[i]--;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                        break;<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>                } else {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        end[endrank] = pos[endrank];<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        pos[endrank] -= step[endrank];<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        dStart[endrank]--;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        dStop[endrank]--;<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>                if (sStart != pos) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (!omit[i]) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        sStart[k++] = pos[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>                }<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[] getShape() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return shape;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Stats.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..8159da4
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,2000 @@
+<!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, int axis) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                axis = a.checkAxis(axis);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                final int is = a.getElementsPerItem();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                QStatisticsImpl&lt;?&gt; qstats = a.getFirstMetadata(QStatisticsImpl.class);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                if (qstats == null || qstats.isDirty) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (is == 1) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                qstats = new QStatisticsImpl&lt;Double&gt;();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        } else {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                qstats = new QStatisticsImpl&lt;double[]&gt;();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        a.setMetadata(qstats);<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 (qstats.getQuantile(axis, QStatisticsImpl.Q2) == null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        if (is == 1) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                Dataset s = DatasetUtils.sort(a, axis);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, pQuantile(s, axis, QStatisticsImpl.Q1));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, pQuantile(s, axis, QStatisticsImpl.Q2));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, pQuantile(s, axis, QStatisticsImpl.Q3));<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                qstats.setSortedDataset(axis, s);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        } else {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                CompoundDoubleDataset q1 = null, q2 = null, q3 = null;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        ((CompoundDataset) a).copyElements(w, j);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                        w.sort(axis);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        <a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        final Dataset c = pQuantile(w, axis, QStatisticsImpl.Q1);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                        if (j == 0) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                                                q1 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                                q2 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                                q3 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                                        q1.setElements(c, j);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        <a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                        q2.setElements(pQuantile(w, axis, QStatisticsImpl.Q2), j);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        <a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                        q3.setElements(pQuantile(w, axis, QStatisticsImpl.Q3), j);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, q1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, q2);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, q3);<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>                return qstats;<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>        // process a sorted dataset<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        private static double pQuantile(final Dataset s, final double q) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                double f = (s.getSize() - 1) * q; // fraction of sample number<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                if (f &lt; 0)<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        return Double.NaN;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                f -= qpt;<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>                double quantile = s.getElementDoubleAbs(qpt);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                if (f &gt; 0) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        quantile = (1-f)*quantile + f*s.getElementDoubleAbs(qpt+1);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return quantile;<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>        // process a sorted dataset and returns a double or compound double dataset<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        private static Dataset pQuantile(final Dataset s, final int axis, final double q) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                final int rank = s.getRank();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                final int is = s.getElementsPerItem();<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int[] oshape = s.getShape();<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>                double f = (oshape[axis] - 1) * q; // fraction of sample number<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                f -= qpt;<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                oshape[axis] = 1;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                int[] qshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                Dataset qds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>                IndexIterator qiter = qds.getIterator(true);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                int[] qpos = qiter.getPos();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                int[] spos = oshape;<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>                while (qiter.hasNext()) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        int i = 0;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        for (; i &lt; axis; i++) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                spos[i] = qpos[i];<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        spos[i++] = qpt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        for (; i &lt; rank; i++) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                spos[i] = qpos[i-1];<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>                        Object obj = s.getObject(spos);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        qds.set(obj, qpos);<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>                if (f &gt; 0) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        qiter = qds.getIterator(true);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        qpos = qiter.getPos();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        qpt++;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        Dataset rds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        <a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        while (qiter.hasNext()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                int i = 0;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                for (; i &lt; axis; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                        spos[i] = qpos[i];<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                spos[i++] = qpt;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                for (; i &lt; rank; i++) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                        spos[i] = qpos[i-1];<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>                                Object obj = s.getObject(spos);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                rds.set(obj, qpos);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        rds.imultiply(f);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        qds.imultiply(1-f);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                        qds.iadd(rds);<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>                return qds;<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>        /**<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param a<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @param q<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * @return point at which CDF has value q<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         */<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        @SuppressWarnings("unchecked")<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        public static double quantile(final Dataset a, final double q) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                if (q &lt; 0 || q &gt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                Double qv = qs.getQuantile(q);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                if (qv == null) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        qv = pQuantile(qs.s.get(), q);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        qs.setQuantile(q, qv);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                return qv;<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>        /**<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         * @param a<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * @param values<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * @return points at which CDF has given values<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         */<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        @SuppressWarnings("unchecked")<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        public static double[] quantile(final Dataset a, final double... values) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                final double[] points  = new double[values.length];<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                for (int i = 0; i &lt; points.length; i++) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        final double q = values[i];<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        if (q &lt; 0 || q &gt; 1) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        Double qv = qs.getQuantile(q);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (qv == null) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                qv = pQuantile(qs.s.get(), q);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                qs.setQuantile(q, qv);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        points[i] = qv;<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>                return points;<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>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @param a<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * @param axis<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param values<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return points at which CDF has given values<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        @SuppressWarnings({ "unchecked" })<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public static Dataset[] quantile(final Dataset a, final int axis, final double... values) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                final Dataset[] points  = new Dataset[values.length];<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                final int is = a.getElementsPerItem();<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, final int axis) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return getQStatistics(a, axis).getQuantile(axis, QStatisticsImpl.Q2);<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>         * @param a dataset<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         * @return median<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         */<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        public static Object median(final Dataset a) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return getQStatistics(a).getQuantile(QStatisticsImpl.Q2);<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>        /**<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         * Interquartile range: Q3 - Q1<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * @param a<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @return range<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        @SuppressWarnings("unchecked")<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        public static Object iqr(final Dataset a) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                final int is = a.getElementsPerItem();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                if (is == 1) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                        QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        return qs.getQuantile(QStatisticsImpl.Q3) - qs.getQuantile(QStatisticsImpl.Q1);<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>                QStatisticsImpl&lt;double[]&gt; qs = (QStatisticsImpl&lt;double[]&gt;) getQStatistics(a);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                double[] q1 = (double[]) qs.getQuantile(QStatisticsImpl.Q1);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                double[] q3 = ((double[]) qs.getQuantile(QStatisticsImpl.Q3)).clone();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                for (int j = 0; j &lt; is; j++) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        q3[j] -= q1[j];<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return q3;<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>         * Interquartile range: Q3 - Q1<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @param a<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @param axis<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * @return range<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         */<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        public static Dataset iqr(final Dataset a, final int axis) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                QStatisticsImpl&lt;?&gt; qs = getQStatistics(a, axis);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                Dataset q3 = qs.getQuantile(axis, QStatisticsImpl.Q3);<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return Maths.subtract(q3, qs.getQuantile(axis, QStatisticsImpl.Q1));<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>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, boolean[] ignoreInvalids) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                boolean ignoreNaNs = false;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                boolean ignoreInfs = false;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                if (a.hasFloatingPointElements()) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>                HigherStatisticsImpl&lt;?&gt; stats = a.getFirstMetadata(HigherStatisticsImpl.class);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                if (stats == null || stats.isDirty) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        stats = calculateHigherMoments(a, ignoreNaNs, ignoreInfs);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        a.setMetadata(stats);<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>                return stats;<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>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, final boolean[] ignoreInvalids, int axis) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                boolean ignoreNaNs = false;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                boolean ignoreInfs = false;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                if (a.hasFloatingPointElements()) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<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>                axis = a.checkAxis(axis);<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, final int axis, final boolean... ignoreInvalids) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                return getHigherStatistic(a, ignoreInvalids, axis).getSkewness(axis);<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>        /**<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * @param a dataset<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param axis<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @return kurtosis along axis in dataset<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @since 2.0<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         */<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        public static Dataset kurtosis(final Dataset a, final int axis, final boolean... ignoreInvalids) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                return getHigherStatistic(a, ignoreInvalids, axis).getKurtosis(axis);<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>         * @param a dataset<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         * @return sum of dataset<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         * @since 2.0<a name="line.786"></a>
+<span class="sourceLineNo">787</span>         */<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        public static Object sum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                return a.sum(ignoreInvalids);<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>        /**<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         * @param a dataset<a name="line.793"></a>
+<span class="sourceLineNo">794</span>         * @param dtype<a name="line.794"></a>
+<span class="sourceLineNo">795</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * @return typed sum of dataset<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @since 2.0<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         */<a name="line.798"></a>
+<span class="sourceLineNo">799</span>        public static Object typedSum(final Dataset a, int dtype, final boolean... ignoreInvalids) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                if (a.isComplex()) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        Complex m = (Complex) a.sum(ignoreInvalids);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return m;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                } else if (a instanceof CompoundDataset) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        return  DTypeUtils.fromDoublesToBiggestPrimitives((double[]) a.sum(ignoreInvalids), dtype);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                }<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return DTypeUtils.fromDoubleToBiggestNumber(DTypeUtils.toReal(a.sum(ignoreInvalids)), dtype);<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>        /**<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         * @param a dataset<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param dtype<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param axis<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @return typed sum of items along axis in dataset<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @since 2.0<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset typedSum(final Dataset a, int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                return DatasetUtils.cast(a.sum(axis, ignoreInvalids), dtype);<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>         * @param a dataset<a name="line.822"></a>
+<span class="sourceLineNo">823</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.823"></a>
+<span class="sourceLineNo">824</span>         * @return product of all items in dataset<a name="line.824"></a>
+<span class="sourceLineNo">825</span>         * @since 2.0<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         */<a name="line.826"></a>
+<span class="sourceLineNo">827</span>        public static Object product(final Dataset a, final boolean... ignoreInvalids) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return typedProduct(a, a.getDType(), ignoreInvalids);<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>        /**<a name="line.831"></a>
+<span class="sourceLineNo">832</span>         * @param a dataset<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         * @param axis<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @return product of items along axis in dataset<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @since 2.0<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         */<a name="line.837"></a>
+<span class="sourceLineNo">838</span>        public static Dataset product(final Dataset a, final int axis, final boolean... ignoreInvalids) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                return typedProduct(a, a.getDType(), axis, ignoreInvalids);<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>         * @param a dataset<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         * @param dtype<a name="line.844"></a>
+<span class="sourceLineNo">845</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.845"></a>
+<span class="sourceLineNo">846</span>         * @return typed product of all items in dataset<a name="line.846"></a>
+<span class="sourceLineNo">847</span>         * @since 2.0<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        public static Object typedProduct(final Dataset a, final int dtype, final boolean... ignoreInvalids) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                final boolean ignoreNaNs;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                final boolean ignoreInfs;<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                if (a.hasFloatingPointElements()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                } else {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        ignoreNaNs = false;<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        ignoreInfs = false;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                if (a.isComplex()) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        IndexIterator it = a.getIterator();<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        double rv = 1, iv = 0;<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                        while (it.hasNext()) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                final double r1 = a.getElementDoubleAbs(it.index);<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                final double i1 = a.getElementDoubleAbs(it.index + 1);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        continue;<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                        continue;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                final double tv = r1*rv - i1*iv;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                iv = r1*iv + i1*rv;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                rv = tv;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                        break;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                }<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>                        return new Complex(rv, iv);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>                IndexIterator it = a.getIterator();<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                final int is;<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                final long[] lresults;<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                final double[] dresults;<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                switch (dtype) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                case Dataset.BOOL:<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                case Dataset.INT8: case Dataset.INT16:<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                case Dataset.INT32: case Dataset.INT64:<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                        long lresult = 1;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        while (it.hasNext()) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                lresult *= a.getElementLongAbs(it.index);<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        return new Long(lresult);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                case Dataset.ARRAYINT8: case Dataset.ARRAYINT16:<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                case Dataset.ARRAYINT32: case Dataset.ARRAYINT64:<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        lresult = 1;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        is = a.getElementsPerItem();<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        lresults = new long[is];<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                lresults[j] = 1;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        while (it.hasNext()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                for (int j = 0; j &lt; is; j++)<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        lresults[j] *= a.getElementLongAbs(it.index+j);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        return lresults;<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                        double dresult = 1.;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        while (it.hasNext()) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                final double x = a.getElementDoubleAbs(it.index);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        continue;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        continue;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                dresult *= x;<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                if (Double.isNaN(dresult)) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                        break;<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>                        return Double.valueOf(dresult);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                case Dataset.ARRAYFLOAT32:<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                case Dataset.ARRAYFLOAT64:<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        is = a.getElementsPerItem();<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        double[] vals = new double[is];<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        dresults = new double[is];<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>                                dresults[j] = 1.;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        while (it.hasNext()) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                boolean okay = true;<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        final double val = a.getElementDoubleAbs(it.index + j);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                                okay = false;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                                break;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        }<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                okay = false;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                                break;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        vals[j] = val;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                if (okay) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                double val = vals[j];<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                                dresults[j] *= val;<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 dresults;<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>                return null;<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>        /**<a name="line.962"></a>
+<span class="sourceLineNo">963</span>         * @param a dataset<a name="line.963"></a>
+<span class="sourceLineNo">964</span>         * @param dtype<a name="line.964"></a>
+<span class="sourceLineNo">965</span>         * @param axis<a name="line.965"></a>
+<span class="sourceLineNo">966</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.966"></a>
+<span class="sourceLineNo">967</span>         * @return typed product of items along axis in dataset<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         * @since 2.0<a name="line.968"></a>
+<span class="sourceLineNo">969</span>         */<a name="line.969"></a>
+<span class="sourceLineNo">970</span>        public static Dataset typedProduct(final Dataset a, final int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                axis = a.checkAxis(axis);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                final int[] oshape = a.getShape();<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                final int is = a.getElementsPerItem();<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                final int alen = oshape[axis];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                oshape[axis] = 1;<a name="line.975"></a>
+<span class="sourceLineNo">976</span><a name="line.976"></a>
+<span class="sourceLineNo">977</span>                final boolean ignoreNaNs;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                final boolean ignoreInfs;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                if (a.hasFloatingPointElements()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                } else {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        ignoreNaNs = false;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        ignoreInfs = false;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                }<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                @SuppressWarnings("deprecation")<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                Dataset result = DatasetFactory.zeros(is, oshape, dtype);<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>                IndexIterator qiter = result.getIterator(true);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                int[] qpos = qiter.getPos();<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                int[] spos;<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>                // TODO add getLongArray(long[], int...) to CompoundDataset<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                while (qiter.hasNext()) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        spos = qpos.clone();<a name="line.995"></a>
+<span class="sourceLineNo">996</span><a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        if (a.isComplex()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                double rv = 1, iv = 0;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                switch (dtype) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                case Dataset.COMPLEX64:<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                spos[axis] = j;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                                final float r1 = af.getReal(spos);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                                final float i1 = af.getImag(spos);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                                if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                                        continue;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                                }<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                                if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                                        continue;<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                                }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                                iv = r1*iv + i1*rv;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                rv = tv;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                                        break;<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>                                        break;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                case Dataset.COMPLEX128:<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                                spos[axis] = j;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                                final double r1 = ad.getReal(spos);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                                final double i1 = ad.getImag(spos);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                        continue;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                                        continue;<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                                iv = r1*iv + i1*rv;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                                rv = tv;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                                        break;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                                }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        break;<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>                                result.set(new Complex(rv, iv), qpos);<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        } else {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                final long[] lresults;<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                final double[] dresults;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                switch (dtype) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                case Dataset.BOOL:<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                        long lresult = 1;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                                spos[axis] = j;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                                lresult *= a.getInt(spos);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                        }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                        result.set(lresult, qpos);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                case Dataset.ARRAYINT8:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                        lresults = new long[is];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                                lresults[k] = 1;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                                spos[axis] = j;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                                final byte[] va = (byte[]) a.getObject(spos);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                                        lresults[k] *= va[k];<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>                                        result.set(lresults, qpos);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                        break;<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                case Dataset.ARRAYINT16:<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        lresults = new long[is];<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                                lresults[k] = 1;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                        }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                                spos[axis] = j;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                final short[] va = (short[]) a.getObject(spos);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                                        lresults[k] *= va[k];<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>                                        result.set(lresults, qpos);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                        break;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                case Dataset.ARRAYINT32:<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        lresults = new long[is];<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                                lresults[k] = 1;<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        }<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                spos[axis] = j;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                final int[] va = (int[]) a.getObject(spos);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                        lresults[k] *= va[k];<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>                                        result.set(lresults, qpos);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        break;<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                case Dataset.ARRAYINT64:<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        lresults = new long[is];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                lresults[k] = 1;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                                spos[axis] = j;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                                final long[] va = (long[]) a.getObject(spos);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                        lresults[k] *= va[k];<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>                                        result.set(lresults, qpos);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        break;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        double dresult = 1.;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                                spos[axis] = j;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double x = a.getDouble(spos); <a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                        continue;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                                        continue;<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                }<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                                dresult *= x;<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                                if (Double.isNaN(dresult)) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                        break;<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>                                        result.set(dresult, qpos);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        break;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        double[] dvalues = new double[is];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        dresults = new double[is];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                                dresults[k] = 1.;<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        }<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                                spos[axis] = j;<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                                da.getDoubleArray(dvalues, spos);<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                boolean okay = true;<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                                        final double val = dvalues[k];<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                                okay = false;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                                                break;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                                                okay = false;<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                                                break;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                                        }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                                }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                                if (okay) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                                                dresults[k] *= dvalues[k];<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>                                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                        result.set(dresults, qpos);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        break;<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>                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                result.setShape(ShapeUtils.squeezeShape(oshape, axis));<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                return result;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        /**<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>         * @param a dataset<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>         * @return cumulative product of items in flattened dataset<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>         * @since 2.0<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         */<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        public static Dataset cumulativeProduct(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                return cumulativeProduct(a.flatten(), 0, ignoreInvalids);<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>        /**<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * @param a dataset<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param axis<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @return cumulative product of items along axis in dataset<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @since 2.0<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         */<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        public static Dataset cumulativeProduct(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                axis = a.checkAxis(axis);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                int dtype = a.getDType();<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                int[] oshape = a.getShape();<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                int alen = oshape[axis];<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                oshape[axis] = 1;<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span><a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                final boolean ignoreNaNs;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                final boolean ignoreInfs;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                if (a.hasFloatingPointElements()) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                } else {<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        ignoreNaNs = false;<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        ignoreInfs = false;<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span><a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int[] pos = pi.getPos();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                while (pi.hasNext()) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        if (a.isComplex()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                double rv = 1, iv = 0;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                switch (dtype) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                case Dataset.COMPLEX64:<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                        pos[axis] = j;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                        final float r1 = af.getReal(pos);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                        final float i1 = af.getImag(pos);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                                continue;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                                                continue;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                        }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                                        iv = r1*iv + i1*rv;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                                        rv = tv;<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                rf.set((float) rv, (float) iv, pos);<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.COMPLEX128:<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                                        pos[axis] = j;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                                        final double r1 = ad.getReal(pos);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                                continue;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                                        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                                                continue;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                                        }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                        iv = r1*iv + i1*rv;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                        rv = tv;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                                }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                                rd.set(rv, iv, pos);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        break;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        } else {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                final int is;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                final long[] lresults;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                final double[] dresults;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span><a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                switch (dtype) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                case Dataset.BOOL:<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                        long lresult = 1;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                                pos[axis] = j;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                                lresult *= a.getInt(pos);<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                result.set(lresult, pos);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                        }<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        break;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                case Dataset.ARRAYINT8:<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        is = a.getElementsPerItem();<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        lresults = new long[is];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                lresults[k] = 1;<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                                pos[axis] = j;<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                        lresults[k] *= va[k];<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                result.set(lresults, pos);<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                        }<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        break;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                case Dataset.ARRAYINT16:<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        is = a.getElementsPerItem();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                        lresults = new long[is];<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                                lresults[k] = 1;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                pos[axis] = j;<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                        lresults[k] *= va[k];<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                result.set(lresults, pos);<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.ARRAYINT32:<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                        is = a.getElementsPerItem();<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        lresults = new long[is];<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                lresults[k] = 1;<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                                pos[axis] = j;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                        lresults[k] *= va[k];<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                result.set(lresults, pos);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                        break;<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                case Dataset.ARRAYINT64:<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        is = a.getElementsPerItem();<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                        lresults = new long[is];<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                                lresults[k] = 1;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                        }<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                                pos[axis] = j;<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                        lresults[k] *= va[k];<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                                result.set(lresults, pos);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                        }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                        break;<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        double dresult = 1.;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                                        pos[axis] = j;<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                                        final double x = a.getDouble(pos);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                                continue;<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                                                continue;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                        }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                        dresult *= x;<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                                result.set(dresult, pos);<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                        }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                        break;<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                                        is = a.getElementsPerItem();<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                        double[] dvalues = new double[is];<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                                        dresults = new double[is];<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                                dresults[k] = 1.;<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                        }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                                pos[axis] = j;<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                                boolean okay = true;<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                        final double val = dvalues[k];<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                                okay = false;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                break;<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                        }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                                okay = false;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                                                break;<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>                                                if (okay) {<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                dresults[k] *= dvalues[k];<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>                                                result.set(dresults, pos);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                        break;<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                }<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><a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                return result;<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>         * @param a dataset<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>         * @return cumulative sum of items in flattened dataset<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>         * @since 2.0<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>         */<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>        public static Dataset cumulativeSum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                return cumulativeSum(a.flatten(), 0, ignoreInvalids);<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>        /**<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>         * @param a dataset<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>         * @param axis<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * @return cumulative sum of items along axis in dataset<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * @since 2.0<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         */<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>        public static Dataset cumulativeSum(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                axis = a.checkAxis(axis);<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                int dtype = a.getDType();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                int[] oshape = a.getShape();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                int alen = oshape[axis];<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                oshape[axis] = 1;<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                final boolean ignoreNaNs;<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                final boolean ignoreInfs;<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                if (a.hasFloatingPointElements()) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        ignoreNaNs = false;<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        ignoreInfs = false;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                }<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                int[] pos = pi.getPos();<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                while (pi.hasNext()) {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                        if (a.isComplex()) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                double rv = 0, iv = 0;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                switch (dtype) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                case Dataset.COMPLEX64:<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                        pos[axis] = j;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        final float r1 = af.getReal(pos);<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                        final float i1 = af.getImag(pos);<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                                continue;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                        }<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                                continue;<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        }<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                        rv += r1;<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        iv += i1;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                rf.set((float) rv, (float) iv, pos);<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                        }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        break;<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                case Dataset.COMPLEX128:<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                        pos[axis] = j;<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                        final double r1 = ad.getReal(pos);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                                continue;<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                                        }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                                continue;<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                        }<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                        rv += r1;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        iv += i1;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                rd.set(rv, iv, pos);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                        }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        break;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                        } else {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                final int is;<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                final long[] lresults;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                final double[] dresults;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                switch (dtype) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                case Dataset.BOOL:<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                        long lresult = 0;<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                pos[axis] = j;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                lresult += a.getInt(pos);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                result.set(lresult, pos);<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                        }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        break;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                case Dataset.ARRAYINT8:<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                        is = a.getElementsPerItem();<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        lresults = new long[is];<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                pos[axis] = j;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                        lresults[k] += va[k];<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                                }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                                result.set(lresults, pos);<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        }<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        break;<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                case Dataset.ARRAYINT16:<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        is = a.getElementsPerItem();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                        lresults = new long[is];<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                pos[axis] = j;<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                        lresults[k] += va[k];<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                result.set(lresults, pos);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                        }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                        break;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                case Dataset.ARRAYINT32:<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        is = a.getElementsPerItem();<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                        lresults = new long[is];<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                pos[axis] = j;<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                        lresults[k] += va[k];<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                }<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                result.set(lresults, pos);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                        }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                        break;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                case Dataset.ARRAYINT64:<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        is = a.getElementsPerItem();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        lresults = new long[is];<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                                pos[axis] = j;<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                        lresults[k] += va[k];<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                result.set(lresults, pos);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                        break;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        double dresult = 0.;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                        pos[axis] = j;<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                        final double x = a.getDouble(pos);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                                continue;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                        }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<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>                                                        dresult += x;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                result.set(dresult, pos);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        break;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        is = a.getElementsPerItem();<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        double[] dvalues = new double[is];<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                        dresults = new double[is];<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                pos[axis] = j;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                boolean okay = true;<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                        final double val = dvalues[k];<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                                okay = false;<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                                                break;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                        }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                                okay = false;<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                                break;<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>                                                if (okay) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                                dresults[k] += dvalues[k];<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                result.set(dresults, pos);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                        break;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                }<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><a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                return result;<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        }<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>         * @param a<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>         * @return average deviation value of all items the dataset<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>         */<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        public static Object averageDeviation(final Dataset a) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                final IndexIterator it = a.getIterator();<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                final int is = a.getElementsPerItem();<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                if (is == 1) {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        double mean = (Double) a.mean();<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                        double sum = 0.0;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span><a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                        while (it.hasNext()) {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                sum += Math.abs(a.getElementDoubleAbs(it.index) - mean);<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                        }<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span><a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                        return sum / a.getSize();<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>                double[] means = (double[]) a.mean();<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                double[] sums = new double[is];<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span><a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                while (it.hasNext()) {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                        for (int j = 0; j &lt; is; j++)<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                sums[j] += Math.abs(a.getElementDoubleAbs(it.index + j) - means[j]);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span><a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                double n = a.getSize();<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                for (int j = 0; j &lt; is; j++)<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        sums[j] /= n;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span><a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                return sums;<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>         * The residual is the sum of squared differences<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>         * @param a<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>         * @param b<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>         * @return residual value<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>         */<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>        public static double residual(final Dataset a, final Dataset b) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                return a.residual(b);<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>        }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span><a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        /**<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>         * The residual is the sum of squared differences<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>         * @param a<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>         * @param b<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>         * @param w<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>         * @return residual value<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>         */<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        public static double weightedResidual(final Dataset a, final Dataset b, final Dataset w) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                return a.residual(b, w, false);<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>        /**<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>         * Calculate approximate outlier values. These are defined as the values in the dataset<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>         * that are approximately below and above the given thresholds - in terms of percentages<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>         * of dataset size.<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>         * &lt;p&gt;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>         * It approximates by limiting the number of items (given by length) used internally by<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>         * data structures - the larger this is, the more accurate will those outlier values become.<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>         * The actual thresholds used are returned in the array.<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>         * &lt;p&gt;<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>         * Also, the low and high values will be made distinct if possible by adjusting the thresholds<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>         * @param a<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>         * @param lo percentage threshold for lower limit<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>         * @param hi percentage threshold for higher limit<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>         * @param length maximum number of items used internally, if negative, then unlimited<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>         * @return double array with low and high values, and low and high percentage thresholds<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>         */<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>        public static double[] outlierValues(final Dataset a, double lo, double hi, final int length) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                if (lo &lt;= 0 || hi &lt;= 0 || lo &gt;= hi || hi &gt;= 100  || Double.isNaN(lo)|| Double.isNaN(hi)) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        throw new IllegalArgumentException("Thresholds must be between (0,100) and in order");<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                final int size = a.getSize();<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                int nl = Math.max((int) ((lo*size)/100), 1);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                if (length &gt; 0 &amp;&amp; nl &gt; length)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                        nl = length;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                int nh = Math.max((int) (((100-hi)*size)/100), 1);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                if (length &gt; 0 &amp;&amp; nh &gt; length)<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        nh = length;<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span><a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                double[] results = Math.max(nl, nh) &gt; 640 ? outlierValuesMap(a, nl, nh) : outlierValuesList(a, nl, nh);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span><a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                results[2] = results[2]*100./size;<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                results[3] = 100. - results[3]*100./size;<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                return results;<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span><a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>        static double[] outlierValuesMap(final Dataset a, int nl, int nh) {<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                final TreeMap&lt;Double, Integer&gt; lMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                final TreeMap&lt;Double, Integer&gt; hMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span><a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                int ml = 0;<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                int mh = 0;<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                IndexIterator it = a.getIterator();<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                while (it.hasNext()) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                        Double x = a.getElementDoubleAbs(it.index);<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                        Integer i;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                        if (ml == nl) {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                Double k = lMap.lastKey();<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                if (x &lt; k) {<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        i = lMap.get(k) - 1;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        if (i == 0) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                lMap.remove(k);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                        } else {<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                lMap.put(k, i);<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        i = lMap.get(x);<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                        if (i == null) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                lMap.put(x, 1);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                lMap.put(x, i + 1);<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>                        } else {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                i = lMap.get(x);<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                if (i == null) {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                        lMap.put(x, 1);<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                } else {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        lMap.put(x, i + 1);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                ml++;<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>                        if (mh == nh) {<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                Double k = hMap.firstKey();<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                if (x &gt; k) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                        i = hMap.get(k) - 1;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        if (i == 0) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                hMap.remove(k);<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                hMap.put(k, i);<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                        }<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        i = hMap.get(x);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        if (i == null) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                hMap.put(x, 1);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        } else {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                hMap.put(x, i+1);<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 {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                i = hMap.get(x);<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                if (i == null) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        hMap.put(x, 1);<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                } else {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                        hMap.put(x, i+1);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                mh++;<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                        }<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                // Attempt to make values distinct<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                double lx = lMap.lastKey();<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                double hx = hMap.firstKey();<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                if (lx &gt;= hx) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                        Double h = hMap.higherKey(lx);<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                        if (h != null) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                hx = h;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                mh--;<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        } else {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                Double l = lMap.lowerKey(hx);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                if (l != null) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        lx = l;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                        ml--;<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>                        <a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                return new double[] {lMap.lastKey(), hMap.firstKey(), ml, mh};<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>        static double[] outlierValuesList(final Dataset a, int nl, int nh) {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                final List&lt;Double&gt; lList = new ArrayList&lt;Double&gt;(nl);<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                final List&lt;Double&gt; hList = new ArrayList&lt;Double&gt;(nh);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>//              final List&lt;Double&gt; lList = new LinkedList&lt;Double&gt;();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>//              final List&lt;Double&gt; hList = new LinkedList&lt;Double&gt;();<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span><a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                double lx = Double.POSITIVE_INFINITY;<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                double hx = Double.NEGATIVE_INFINITY;<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                IndexIterator it = a.getIterator();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                        double x = a.getElementDoubleAbs(it.index);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                        if (x &lt; lx) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                if (lList.size() == nl) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                        lList.remove(lx);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                lList.add(x);<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                lx = Collections.max(lList);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                        } else if (x == lx) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                if (lList.size() &lt; nl) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        lList.add(x);<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>                        if (x &gt; hx) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                if (hList.size() == nh) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        hList.remove(hx);<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                hList.add(x);<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                hx = Collections.min(hList);<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                        } else if (x == hx) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                if (hList.size() &lt; nh) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        hList.add(x);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                }<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><a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                nl = lList.size();<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                nh = hList.size();<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                // Attempt to make values distinct<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                if (lx &gt;= hx) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        Collections.sort(hList);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                        for (double h : hList) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                if (h &gt; hx) {<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        hx = h;<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                        break;<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                nh--;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                        }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        if (lx &gt;= hx) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                Collections.sort(lList);<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                Collections.reverse(lList);<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                for (double l : lList) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        if (l &lt; lx) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                                lx = l;<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                break;<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                        nl--;<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                }<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>                return new double[] {lx, hx, nl, nh};<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>        /**<a name="line.1825"></a>
+<span class="sourceLineNo">1826</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.1826"></a>
+<span class="sourceLineNo">1827</span>         * @param a<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>         * @return covariance array of a<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>         */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>        public static Dataset covariance(final Dataset a) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                return covariance(a, true, false, null); <a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>        /**<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>         * See {@link #covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)} with b = null.<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>         * @param a<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>         * @return covariance array of a<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>         * @since 2.0<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>         */<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>        public static Dataset covariance(final Dataset a, <a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                return covariance(a, null, rowvar, bias, ddof);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        }<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span><a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>        /**<a name="line.1845"></a>
+<span class="sourceLineNo">1846</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.1846"></a>
+<span class="sourceLineNo">1847</span>         * @param a<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>         * @return covariance array of a concatenated with b<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>         */<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        public static Dataset covariance(final Dataset a, final Dataset b) {<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                return covariance(a, b, true, false, null);<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>        /**<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>         * Calculate the covariance matrix (array) of a concatenated with b. This <a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>         * method is directly based on the implementation in numpy (cov). <a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>         * @param a Array containing multiple variable and observations. Each row represents a variable, each column an observation.<a name="line.1857"></a>
+<span class="sourceLineNo">1858</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.1858"></a>
+<span class="sourceLineNo">1859</span>         * @param rowvar When true (default), each row is a variable; when false each column is a variable.<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>         * @param bias Default normalisation is (N - 1) - N is number of observations. If set true, normalisation is (N). <a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>         * @param ddof Default normalisation is (N - 1). If ddof is set, then normalisation is (N - ddof).<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>         * @return covariance array of a concatenated with b<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>         * @since 2.0<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>         */<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>        public static Dataset covariance (final Dataset a, final Dataset b, <a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                <a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                //Create a working copy of the dataset &amp; check its rank.<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                Dataset vars = a.clone();<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                if (a.getRank() == 1) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                        vars.setShape(1, a.getShape()[0]);<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>                //1D of variables, so consider rows as variables<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                if (vars.getShape()[0] == 1) {<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        rowvar = true;<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                }<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                <a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                //nr is the number of records; axis is index<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                int nr, axis;<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                if (rowvar) {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        nr = vars.getShape()[1];<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        axis = 0;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                } else {<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        nr = vars.getShape()[0];<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                        axis = 1;<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>                //Set the reduced degrees of freedom &amp; normalisation factor<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                if (ddof == null) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                        if (bias == false) {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                                ddof = 1;<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        } else {<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                                ddof = 0;<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        }<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                double norm_fact = nr - ddof;<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                if (norm_fact &lt;= 0.) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                        //TODO Some sort of warning here?<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                        norm_fact = 0.;<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                <a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                //Concatenate additional set of variables with main set<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                if (b != null) {<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                        //Create a working copy of the dataset &amp; check its rank.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                        Dataset extraVars = b.clone();<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                        if (b.getRank() == 1) {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                extraVars.setShape(1, a.getShape()[0]);<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                        }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                        vars = DatasetUtils.concatenate(new Dataset[]{vars, extraVars}, axis);<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>                //Calculate deviations &amp; covariance matrix<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                Dataset varsMean = vars.mean(1-axis, false);<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                //-vars &amp; varsMean need same shape (this is a hack!)<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                int[] meanShape = vars.getShape();<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                meanShape[1-axis] = 1;<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                varsMean.setShape(meanShape);<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                vars.isubtract(varsMean);<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                Dataset cov;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                if (rowvar) {<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars, Maths.conjugate(vars.transpose())), norm_fact).squeeze();<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                } else {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars.transpose(), Maths.conjugate(vars)), norm_fact).squeeze();<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                }<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                return cov;<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>        }<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>}<a name="line.1928"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..deaddfa
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,216 @@
+<!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><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public StrideIterator(final int[] shape) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                this(shape, null, 0);<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 StrideIterator(final int isize, final int[] shape) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                this(isize, shape, null, 0);<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 StrideIterator(final int[] shape, final int[] strides) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                this(shape, strides, 0);<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>        public StrideIterator(final int[] shape, final int[] strides, final int offset) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                this(1, shape, strides, offset);<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>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset) {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                this(isize, shape, strides, offset, 0);<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>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset, final int element) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                init(isize, shape, strides, offset, element);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                reset();<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>        public StrideIterator(final int isize, final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(isize, shape, null, 0, start, stop, step);<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 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.56"></a>
+<span class="sourceLineNo">057</span>                this(isize, shape, oStrides, oOffset, new SliceND(shape, start, stop, step));<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[] oStrides, final int oOffset, final SliceND slice) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                int rank = shape.length;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                int[] strides = new int[rank];<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                int[] offset = new int[1];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                int[] newShape = AbstractDataset.createStrides(slice, isize, shape, oStrides, oOffset, strides, offset);<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                init(isize, newShape, strides, offset[0], 0);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                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>
+<span class="sourceLineNo">070</span>        private void init(final int isize, final int[] shape, final int[] strides, final int offset, final int element) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                this.isize = isize;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                istep = isize;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this.shape = shape;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                int rank = shape.length;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                endrank = rank - 1;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                pos = new int[rank];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                delta = new int[rank];<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                this.element = element;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (strides != null) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        stride = strides;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                delta[j] = stride[j] * shape[j];<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                } else {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        stride = new int[rank];<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        int s = isize;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                stride[j] = s;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                s *= shape[j];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                delta[j] = s;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        imax = s;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                nstart = offset;<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>        void calcGap() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                // do nothing<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 int[] getShape() {<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>
+<span class="sourceLineNo">107</span>        @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public boolean hasNext() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                // now move on one position<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int j = endrank;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                if (j &lt; 0) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        index += istep;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        return index &lt; istep;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                for (; j &gt;= 0; j--) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        index += stride[j];<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        final int p = pos[j] + 1;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (p &lt; shape[j]) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                pos[j] = p;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                break;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        pos[j] = 0;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        index -= delta[j]; // reset this dimension<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                return j &gt;= 0;<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 int[] getPos() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                return pos;<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 void reset() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                Arrays.fill(pos, 0);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                if (endrank &gt;= 0) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        pos[endrank] = -1;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        index = nstart - stride[endrank];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                } else {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        index = -istep;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                index += element;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..d29dd53
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..95b9ddb
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,1039 @@
+<!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>                                odata = data = dataset.data.clone();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        } else {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                offset = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                stride = null;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                base = null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                odata = data = createArray(size);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                IndexIterator iter = dataset.getIterator();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        data[i] = dataset.data[iter.index];<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>                } catch (Throwable t) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException(t);<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>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * Copy and cast a dataset to this class type<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param dataset<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        StringDatasetBase(final Dataset dataset) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                copyToView(dataset, this, true, false);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                offset = 0;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                stride = null;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                base = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        odata = data = createArray(size);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } catch (Throwable t) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException(t);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                IndexIterator iter = dataset.getIterator();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        data[i] = dataset.getStringAbs(iter.index); // GET_ELEMENT_WITH_CAST<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>        @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><a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return true;<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                StringDatasetBase other = (StringDatasetBase) obj;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>//              if (size == 1) // for zero-rank datasets<a name="line.164"></a>
+<span class="sourceLineNo">165</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                IndexIterator iter = getIterator();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                IndexIterator oiter = other.getIterator();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (!data[iter.index].equals(other.data[oiter.index])) // OBJECT_UNEQUAL<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                return false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return true;<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 int hashCode() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return super.hashCode();<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 StringDatasetBase clone() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return new StringDatasetBase(this);<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>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * sequences or arrays are padded with zeros.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         *<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @param obj<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @return dataset with contents given by input<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        static StringDatasetBase createFromObject(final Object obj) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                StringDatasetBase result = new StringDatasetBase();<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (obj != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        try {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                result.odata = result.data = createArray(result.size);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        } catch (Throwable t) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                throw new IllegalArgumentException(t);<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>                        int[] pos = new int[result.shape.length];<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        result.fillData(obj, 0, pos);<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>                return result;<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>        /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @param shape<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @return a dataset filled with ones<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        static StringDatasetBase ones(final int... shape) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new StringDatasetBase(shape).fill(1);<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 StringDatasetBase fill(final Object obj) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                setDirty();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                IndexIterator iter = getIterator();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                while (iter.hasNext()) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        data[iter.index] = dv;<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>                return this;<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>         * This is a typed version of {@link #getBuffer()}<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return data buffer as linear array<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public String[] getData() { // PRIM_TYPE<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return data;<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>        @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        protected int getBufferLength() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                if (data == null)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        return 0;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return data.length;<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 StringDatasetBase getView(boolean deepCopyMetadata) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                StringDatasetBase view = new StringDatasetBase();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                view.setData();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                return view;<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>        /**<a name="line.257"></a>
+<span class="sourceLineNo">258</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.258"></a>
+<span class="sourceLineNo">259</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         *<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param index<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *            absolute index<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @return value<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public String getAbs(final int index) { // PRIM_TYPE<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                return data[index];<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>        @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return false;<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 double getElementDoubleAbs(final int index) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return 0;<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 long getElementLongAbs(final int index) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return 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>        @Override<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        public Object getObjectAbs(final int index) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                return data[index];<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>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public String getStringAbs(final int index) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return stringFormat == null ?  data[index] : // FORMAT_STRING<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        stringFormat.format(data[index]);<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>        /**<a name="line.295"></a>
+<span class="sourceLineNo">296</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.296"></a>
+<span class="sourceLineNo">297</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         *<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param index<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *            absolute index<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param val<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            new value<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public void setAbs(final int index, final String val) { // PRIM_TYPE<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                setDirty();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                data[index] = val;<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>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                setDirty();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                String[] dsrc = (String[]) src; // PRIM_TYPE<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                data[dindex] = dsrc[sindex];<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 void setObjectAbs(final int index, final Object obj) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<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>
+<span class="sourceLineNo">322</span>                setAbs(index, obj.toString()); // FROM_OBJECT<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>        /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return item in first position<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @since 2.0<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public String get() { // PRIM_TYPE<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return data[getFirst1DIndex()];<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>         * @param i<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @return item in given position<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        public String get(final int i) { // PRIM_TYPE<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                return data[get1DIndex(i)];<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>        /**<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param i<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @param j<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @return item in given position<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        public String get(final int i, final int j) { // PRIM_TYPE<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                return data[get1DIndex(i, j)];<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>         * @param pos<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 String get(final int... pos) { // PRIM_TYPE<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                return data[get1DIndex(pos)];<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 Object getObject() {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                return get(); // CLASS_TYPE<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>        @Override<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public Object getObject(final int i) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return get(i); // CLASS_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>        @Override<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        public Object getObject(final int i, final int j) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return get(i, j); // CLASS_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>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public Object getObject(final int... pos) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return get(pos); // CLASS_TYPE<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>        @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        public String getString() {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                return getStringAbs(getFirst1DIndex());<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 String getString(final int i) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return getStringAbs(get1DIndex(i));<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>        @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public String getString(final int i, final int j) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                return getStringAbs(get1DIndex(i, j));<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>        @Override<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        public String getString(final int... pos) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                return getStringAbs(get1DIndex(pos));<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>        @Override<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public double getDouble() {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return 0;<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>        @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        public double getDouble(final int i) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                return 0;<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>        @Override<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public double getDouble(final int i, final int j) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return 0;<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>        public double getDouble(final int... pos) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                return 0;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>        @Override<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public float getFloat() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                return 0;<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>        @Override<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        public float getFloat(final int i) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return 0;<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>        @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        public float getFloat(final int i, final int j) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return 0;<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>        @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public float getFloat(final int... pos) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return 0;<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>        @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public long getLong() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                return 0;<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>        @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        public long getLong(final int i) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                return 0;<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>        @Override<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        public long getLong(final int i, final int j) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                return 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>        @Override<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        public long getLong(final int... pos) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                return 0;<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 int getInt() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return 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 int getInt(final int i) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return 0;<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 int getInt(final int i, final int j) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return 0;<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 int getInt(final int... pos) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                return 0;<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>        @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        public short getShort() {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                return 0;<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>        @Override<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public short getShort(final int i) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return 0;<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 short getShort(final int i, final int j) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                return 0;<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 short getShort(final int... pos) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return 0;<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>        @Override<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        public byte getByte() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                return 0;<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>        @Override<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public byte getByte(final int i) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                return 0;<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>        @Override<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public byte getByte(final int i, final int j) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                return 0;<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>        @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        public byte getByte(final int... pos) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                return 0;<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 boolean getBoolean() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                return false;<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 boolean getBoolean(final int i) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                return false;<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 boolean getBoolean(final int i, final int j) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                return false;<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 boolean getBoolean(final int... pos) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                return false;<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>        /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         *<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @param value<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @since 2.0<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         */<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public void setItem(final String value) { // PRIM_TYPE<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                setAbs(getFirst1DIndex(), value);<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>        /**<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         *<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @param value<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param i<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        public void setItem(final String value, final int i) { // PRIM_TYPE<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                setAbs(get1DIndex(i), value);<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>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @param value<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @param i<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param j<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         */<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        public void setItem(final String value, final int i, final int j) { // PRIM_TYPE<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                setAbs(get1DIndex(i, j), value);<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>        /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * Sets the value at a particular point to the passed value<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         *<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param pos<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         */<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public void setItem(final String value, final int... pos) { // PRIM_TYPE<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                setAbs(get1DIndex(pos), value);<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 void set(final Object obj) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                setItem(obj.toString()); // FROM_OBJECT<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>        @Override<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        public void set(final Object obj, final int i) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                setItem(obj.toString(), i); // FROM_OBJECT<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>        @Override<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        public void set(final Object obj, final int i, final int j) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                setItem(obj.toString(), i, j); // FROM_OBJECT<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>        public void set(final Object obj, int... pos) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        pos = new int[shape.length];<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>                setItem(obj.toString(), pos); // FROM_OBJECT<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>        @Override<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public void resize(int... newShape) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                setDirty();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                final IndexIterator iter = getIterator();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final String[] ndata; // PRIM_TYPE<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                try {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        ndata = createArray(nsize);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                } catch (Throwable t) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        throw new IllegalArgumentException(t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        ndata[i] = data[iter.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>                odata = data = ndata;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                size = nsize;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                shape = newShape;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                stride = null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                offset = 0;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                base = null;<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>        @Override<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        public StringDatasetBase sort(Integer axis) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                setDirty();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                if (axis == null) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        if (stride == null) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                Arrays.sort(data);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        } else {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                StringDatasetBase ads = clone().sort(null);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                setSlicedView(getView(false), ads);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        }<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                } else {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        axis = checkAxis(axis);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        <a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        StringDatasetBase ads = new StringDatasetBase(shape[axis]);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        int[] pos = pi.getPos();<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        boolean[] hit = pi.getOmit();<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        while (pi.hasNext()) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                Arrays.sort(ads.data);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                setItemsOnAxes(pos, hit, ads.data);<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>                return this;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<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 StringDatasetBase getUniqueItems() {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                Set&lt;String&gt; set = new TreeSet&lt;String&gt;(); // CLASS_TYPE<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                IndexIterator it = getIterator();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                while (it.hasNext()) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        set.add(data[it.index]);<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>                StringDataset u = new StringDataset(set.size()); // CLASS_TYPE<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                int i = 0;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                String[] udata = u.getData(); // PRIM_TYPE<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (String v : set) { // CLASS_TYPE<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        udata[i++] = v;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return u;<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 StringDatasetBase getSlice(final SliceIterator siter) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                StringDatasetBase result = new StringDatasetBase(siter.getShape());<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                String[] rdata = result.data; // PRIM_TYPE<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        rdata[i] = data[siter.index];<a name="line.678"></a>
+<span class="sourceLineNo">679</span><a name="line.679"></a>
+<span class="sourceLineNo">680</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                return result;<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>        @Override<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                setDirty();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                IndexIterator riter = result.getIterator();<a name="line.687"></a>
+<span class="sourceLineNo">688</span><a name="line.688"></a>
+<span class="sourceLineNo">689</span>                String[] rdata = ((StringDatasetBase) result).data; // PRIM_TYPE<a name="line.689"></a>
+<span class="sourceLineNo">690</span><a name="line.690"></a>
+<span class="sourceLineNo">691</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        rdata[riter.index] = data[iter.index];<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>        @Override<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        public StringDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                setDirty();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                if (obj instanceof Dataset) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        final Dataset ds = (Dataset) obj;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        if (length != ds.getSize()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                throw new IllegalArgumentException(<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                                "Number of true items in selection does not match number of items in dataset");<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>                        final IndexIterator oiter = ds.getIterator();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.708"></a>
+<span class="sourceLineNo">709</span><a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                data[biter.index] = ds.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<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>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        while (biter.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                data[biter.index] = dv;<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 this;<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>        @Override<a name="line.724"></a>
+<span class="sourceLineNo">725</span>        public StringDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                setDirty();<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                if (obj instanceof Dataset) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final Dataset ds = (Dataset) obj;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (index.getSize() != 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 items in index dataset 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 IntegerIterator iter = new IntegerIterator(index, size);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[iter.index] = ds.getStringAbs(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 String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (iter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[iter.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 StringDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                final int[] pos = iter.getPos();<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>                if (obj instanceof Dataset) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        final Dataset ds = (Dataset) obj;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                throw new IllegalArgumentException(<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                setItem(ds.getStringAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        while (iter.hasNext()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                setItem(dv, pos);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                }<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                return this;<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>        StringDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                setDirty();<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                while (it.hasNext()) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        data[it.aIndex] = d.getStringAbs(it.bIndex);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                }<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                return this;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>        @Override<a name="line.790"></a>
+<span class="sourceLineNo">791</span>        public StringDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                setDirty();<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                if (obj instanceof IDataset) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        final IDataset ds = (IDataset) obj;<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        final int[] oshape = ds.getShape();<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                throw new IllegalArgumentException(String.format(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                Arrays.toString(siter.getShape())));<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>                        if (ds instanceof Dataset) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                final Dataset ads = (Dataset) ds;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.806"></a>
+<span class="sourceLineNo">807</span><a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        data[siter.index] = ads.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        } else {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                final int[] pos = oiter.getPos();<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        data[siter.index] = ds.getString(pos); // PRIM_TYPE<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        }<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                } else {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        try {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                String v = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (siter.hasNext())<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        data[siter.index] = v;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        } catch (IllegalArgumentException e) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<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>                return this;<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>        @Override<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                String[] ddata = (String[]) dest.getBuffer(); // PRIM_TYPE<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        throw new IllegalArgumentException("destination array is not large enough");<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>                dest.setDirty();<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        ddata[diter.index] = data[siter.index];<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>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setDirty();<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                String[] sdata = (String[]) src; // PRIM_TYPE<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                }<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        data[siter.index] = sdata[i];<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>        private List&lt;int[]&gt; findPositions(final String value) { // PRIM_TYPE<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                IndexIterator iter = getIterator(true);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                int[] pos = iter.getPos();<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>                        while (iter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                if (data[iter.index] == value) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                        posns.add(pos.clone());<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>                return posns;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>        @Override<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>                if (max == null) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.888"></a>
+<span class="sourceLineNo">889</span><a name="line.889"></a>
+<span class="sourceLineNo">890</span>                        md.setMaximumPositions(max);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>                return max.get(0); // first maximum<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 int[] minPos(boolean... ignoreInvalids) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>                if (min == null) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        md.setMinimumPositions(min);<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>                return min.get(0); // first minimum<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>        @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        public boolean containsNans() {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                return false;<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>        @Override<a name="line.917"></a>
+<span class="sourceLineNo">918</span>        public boolean containsInfs() {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                return false;<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>        @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        public boolean containsInvalidNumbers() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                return false;<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>        @Override<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        public StringDatasetBase iadd(final Object b) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                return this;<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 StringDatasetBase isubtract(final Object b) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                return this;<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>        @Override<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        public StringDatasetBase imultiply(final Object b) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                return this;<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>        @Override<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        public StringDatasetBase idivide(final Object b) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return this;<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>        @Override<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        public StringDatasetBase ifloor() {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                return this;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        @Override<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        public StringDatasetBase iremainder(final Object b) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                return this;<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>        @Override<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        public StringDatasetBase ipower(final Object b) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                return this;<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>        @Override<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                double sum = 0;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                return sum;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..be3ceab
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.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 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>                private static long toLong(double d) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                return 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return (long) d;<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) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return toLong(doubleOperate(a));<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) {<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 a) {<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.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..be3ceab
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/dataset/UnaryOperation.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 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>                private static long toLong(double d) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                return 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return (long) d;<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) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return toLong(doubleOperate(a));<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) {<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 a) {<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.0.1/src-html/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..0e2801c
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..53e46fe
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..950c6c2
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..c8e137b
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/io/ILazySaver.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..61a2895
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.0.1/src-html/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..607734e
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..4eb9313
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..5719f59
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/AxesMetadata.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><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>        public void addAxis(int primary, ILazyDataset iLazyDataset, int... axisDims);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>        int[] refresh(int[] shape);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>}<a name="line.63"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..eab90e7
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..c6a9779
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..e8e4305
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..ecbed93
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..06deddd
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..c5a80e7
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..9526a86
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..1abf8a0
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/Metadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..3161509
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Metadata.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) 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.ByteArrayOutputStream;<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.util.Collection;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Collections;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.HashMap;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.LinkedHashMap;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Map;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Map.Entry;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.lang.SerializationUtils;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.MetadataException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.dataset.ShapeUtils;<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> * Basic implementation of metadata<a name="line.30"></a>
+<span class="sourceLineNo">031</span> */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>public class Metadata implements IMetadata {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private static final long serialVersionUID = IMetadata.serialVersionUID;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private Map&lt;String, ? extends Serializable&gt; metadata;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        // NOTE shapes is LinkedHashMap here because the names collection <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        // maintained order. Now that we do not need this collection but if we<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        // do not keep the shapes in a LinkedHashMap, we lose order.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        private Map&lt;String,int[]&gt; shapes = new LinkedHashMap&lt;String,int[]&gt;(7);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        private Collection&lt;Serializable&gt; userObjects;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        private String filePath;<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 Metadata() {<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>        public Metadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                initialize(metadata);<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>        @Override<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public void initialize(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this.metadata = metadata;<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>        @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public void addNames(Collection&lt;String&gt; names) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (names != null) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        for (String n : names) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                                shapes.put(n, null);<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><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Set metadata map<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param metadata<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 void setMetadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                this.metadata = metadata;<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>        /**<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * Internal use only<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @return metadata map<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        protected Map&lt;String, ? extends Serializable&gt; getInternalMetadata() {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                return metadata;<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>         * Set user objects<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @param objects<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public void setUserObjects(Collection&lt;Serializable&gt; objects) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                userObjects = objects;<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 void addDataInfo(String name, int... shape) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                shapes.put(name, shape);<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>        @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public Collection&lt;String&gt; getDataNames() {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                return Collections.unmodifiableCollection(shapes.keySet());<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 Map&lt;String, int[]&gt; getDataShapes() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return Collections.unmodifiableMap(shapes);<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 Map&lt;String, Integer&gt; getDataSizes() {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                Map&lt;String, Integer&gt; sizes = new HashMap&lt;String, Integer&gt;(1);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        int[] shape = e.getValue();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        if (shape != null &amp;&amp; shape.length &gt; 1)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                sizes.put(e.getKey(), ShapeUtils.calcSize(shape));<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        else<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                sizes.put(e.getKey(), null);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                if (sizes.size() &gt; 0) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        return Collections.unmodifiableMap(sizes);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                return null;<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 Serializable getMetaValue(String key) throws MetadataException {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                return metadata == null ? null : metadata.get(key);<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>        @SuppressWarnings("unchecked")<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        @Override<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        public Collection&lt;String&gt; getMetaNames() throws MetadataException {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                return metadata == null ? (Collection&lt;String&gt;) Collections.EMPTY_SET : Collections.unmodifiableCollection(metadata.keySet());<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 Collection&lt;Serializable&gt; getUserObjects() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return userObjects;<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 IMetadata clone() {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                Metadata c = null;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                try {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        c = (Metadata) super.clone();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        if (metadata != null) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                HashMap&lt;String, Serializable&gt; md = new HashMap&lt;String, Serializable&gt;();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                c.metadata = md;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                ByteArrayOutputStream os = new ByteArrayOutputStream(512);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                for (String k : metadata.keySet()) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                        Serializable v = metadata.get(k);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                        if (v != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                                SerializationUtils.serialize(v, os);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                                Serializable nv = (Serializable) SerializationUtils.deserialize(os.toByteArray());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                                                os.reset();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                                md.put(k, nv);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                        } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                                md.put(k, null);<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>                        c.shapes = new HashMap&lt;String, int[]&gt;(1);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                int[] s = e.getValue();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                c.shapes.put(e.getKey(), s == null ? null : s.clone());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                } catch (CloneNotSupportedException e) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        // Allowed for some objects not to be cloned.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                } catch (Throwable e) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        if (e instanceof ClassNotFoundException) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                // Fix to http://jira.diamond.ac.uk/browse/SCI-1644<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                // Happens when cloning meta data with GridPreferences<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        } if (e instanceof RuntimeException ) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                           throw (RuntimeException)e;<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>                return c;<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 getFilePath() {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                return filePath;<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 void setFilePath(String filePath) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                this.filePath = filePath;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..9e9abe9
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/MetadataFactory.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> * 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><a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class MetadataFactory {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        private MetadataFactory() {<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>        static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; metadataClasses = createMap();<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; createMap() {<a name="line.33"></a>
+<span class="sourceLineNo">034</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.34"></a>
+<span class="sourceLineNo">035</span>                map.put(IMetadata.class, Metadata.class);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                map.put(ErrorMetadata.class, ErrorMetadataImpl.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                map.put(AxesMetadata.class, AxesMetadataImpl.class);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                map.put(DimensionMetadata.class, DimensionMetadataImpl.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                map.put(MaskMetadata.class, MaskMetadataImpl.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                map.put(OriginMetadata.class, OriginMetadataImpl.class);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                map.put(PeemMetadata.class, PeemMetadataImpl.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                map.put(StatisticsMetadata.class, StatisticsMetadataImpl.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                return map;<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>        /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * Create a metadata object of given class with given arguments<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param clazz<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param arguments these must match the arguments given in the initialize method specified in the class<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return metadata object or null if type not available<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @throws MetadataException if the class cannot be instantiated, the initialize method does not exist, or<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         *  the initialize method could not be called successfully<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public static &lt;T extends MetadataType&gt; T createMetadata(Class&lt;T&gt; clazz, Object... arguments) throws MetadataException {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                @SuppressWarnings("unchecked")<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                Class&lt;T&gt; mdClass = (Class&lt;T&gt;) metadataClasses.get(clazz);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (mdClass == null) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        return null;<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>                T obj = null;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                try {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        obj = mdClass.newInstance();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                } catch (Exception e) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        throw new MetadataException("Could not create metadata object", e);<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>                try {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        for (Method m : mdClass.getMethods()) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                if (m.getName().equals("initialize")) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                        m.invoke(obj, arguments);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                        return obj;<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>                } catch (Exception e) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        throw new MetadataException("Could not initialize object", e);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                throw new MetadataException("Could not find initialize method");<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>         * Register metadata class<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @param clazz<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public static &lt;T extends MetadataType&gt; void registerClass(Class&lt;T&gt; clazz) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                Class&lt;? extends MetadataType&gt; iClass = LazyDatasetBase.findMetadataTypeSubInterfaces(clazz);<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                metadataClasses.put(iClass, clazz);<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.0.1/src-html/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..75dddf7
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..4051bd1
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..3244f74
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..2bff739
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..7723920
--- /dev/null
+++ b/apidocs/2.0.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.0.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..a7d9189
--- /dev/null
+++ b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,246 @@
+<!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>        public void setMaximumMinimum(T maximum, T minimum, boolean... ignoreInvalids);<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 maximumPositions the maximum positions to set<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public void setMaximumPositions(List&lt;int[]&gt; maximumPositions, boolean... ignoreInvalids);<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>         * @param minimumPositions the minimum positions to set<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public void setMinimumPositions(List&lt;int[]&gt; minimumPositions, boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @return the maximum positions<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        public List&lt;int[]&gt; getMaximumPositions(boolean... ignoreInvalids);<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 ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @return the minimum<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public T getMinimum(boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @return the minimum positions<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public List&lt;int[]&gt; getMinimumPositions(boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @return the number of samples<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public long getCount(boolean... ignoreInvalids);<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 ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @return the mean of samples<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public T getMean(boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @return the sum of samples<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         */<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        public T getSum(boolean... ignoreInvalids);<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>         * @param isWholePopulation<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @return the variance of samples<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        public double getVariance(boolean isWholePopulation, boolean... ignoreInvalids);<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>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * ignore infinities separately.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @return the maximum<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public Dataset getMaximum(int axis, boolean... ignoreInvalids);<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 ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @return the minimum<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         */<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public Dataset getMinimum(int axis, boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @return the argument at which the maximum first occurs<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public Dataset getArgMaximum(int axis, boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @return the argument at which the minimum first occurs<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         */<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        public Dataset getArgMinimum(int axis, boolean... ignoreInvalids);<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        // TODO LongDataset<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        /**<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * @return the number of samples<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        public Dataset getCount(int axis, boolean... ignoreInvalids);<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>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @return the mean of samples<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        public Dataset getMean(int axis, boolean... ignoreInvalids);<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 ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @return the sum of samples<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        public Dataset getSum(int axis, boolean... ignoreInvalids);<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>         * @param isWholePopulation<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         * @return the variance of samples<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         */<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public Dataset getVariance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>}<a name="line.174"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Transposable.html b/apidocs/2.0.1/src-html/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..6029e6f
--- /dev/null
+++ b/apidocs/2.0.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.0.1/stylesheet.css b/apidocs/2.0.1/stylesheet.css
new file mode 100644
index 0000000..0aeaa97
--- /dev/null
+++ b/apidocs/2.0.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/apidocs-2.0.1.zip b/apidocs/apidocs-2.0.1.zip
new file mode 100644
index 0000000..22bfc53
--- /dev/null
+++ b/apidocs/apidocs-2.0.1.zip
Binary files differ
diff --git a/apidocs/index.php b/apidocs/index.php
new file mode 100644
index 0000000..af09b27
--- /dev/null
+++ b/apidocs/index.php
@@ -0,0 +1 @@
+<?php header('Location: https://eclipse.org/january/apidocs/latest'); ?>
diff --git a/apidocs/latest b/apidocs/latest
new file mode 120000
index 0000000..10bf840
--- /dev/null
+++ b/apidocs/latest
@@ -0,0 +1 @@
+2.0.1
\ No newline at end of file
